java基础--日期
来源:互联网 发布:网络电玩 编辑:程序博客网 时间:2024/04/30 07:17
Ⅰ、创建日期
Ⅱ、日期格式化显示
Ⅲ、日期的转换(主要是和字符串之间的相互转换)
Ⅳ、日期中年、月、日、时、分、秒、星期、月份等获取。
Ⅴ、日期的大小比较、日期的加减。
1、java.util.Date
类Date
表示特定的瞬间,精确到毫秒。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用Calendar
类实现日期和时间字段之间转换,使用DateFormat
类来格式化和解析日期字符串。Date
中的相应方法已废弃。
方法:
boolean after(Date when)
测试此日期是否在指定日期之后。
boolean before(Date when)
测试此日期是否在指定日期之前。
public static void date(){long sec = System.currentTimeMillis();System.out.println(sec);Date date = new Date(sec);//getYear返回当前年份-1900的值//getMonth返回当前月份-1的值//getDate返回一个月的第几天,getDay返回一周的第几天System.out.println(date.getYear()+"/"+date.getMonth()+"/"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds());//无参构造函数默认创建当前时间对象date = new Date();System.out.println(date.getTime()-sec);}
2、java.util.Calendar
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。一个Calendar的实例是系统时间的抽象表示,从Calendar的实例可以知道年月日星期月份时区等信息。Calendar类中有一个静态方法get(int x),通过这个方法可以获取到相关实例的一些值(年月日星期月份等)信息。参数x是一个产量值,在Calendar中有定义。
方法:
abstract void add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
void clear()
将此 Calendar 的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。
void clear(int field)
将此 Calendar 的给定日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。
boolean after(Object when)
判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
boolean before(Object when)
判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。
int get(int field)
返回给定日历字段的值。
static Calendar getInstance()
使用默认时区和语言环境获得一个日历。 此方法有多个重载函数。
Date getTime()
返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
void set(int field, int value)
将给定的日历字段设置为给定值。 此方法有多个重载函数。
void setTime(Date date)
使用给定的 Date 设置此 Calendar 的时间。
public static void calendar(){Calendar cal = Calendar.getInstance();//根据不同地区返回不同值.默认星期天是第一天,星期六是一周最后一天System.out.println(cal.getFirstDayOfWeek() == Calendar.SUNDAY); //MONTH,DAY_OF_WEEK,AM,AM_PM这些有返回值,其他的返回null。并且System.out.println(cal.getDisplayName(Calendar.MONTH, Calendar.LONG,Locale.CHINA));//JDK1.7的新方法//返回指定年份的周数System.out.println(cal.getWeeksInWeekYear());//某一年的第一周的第一天,与weekyear的第一天相同//比如2012年12月30日是2013年的第一周的第一天(星期天),返回2013,但是2013年的第一天是1月1日,星期二System.out.println(cal.getWeekYear());//在给定的字段上增加或减去单位时间单元,但是不超过该字段的最大值//增加一个星期cal.roll(Calendar.WEEK_OF_MONTH, true);//在指定字段上加上或减去指定的时间量,这里是将日期加上7cal.add(Calendar.DATE, 7);//WEEK_OF_MONTH得到指定日期是这个月的第几周System.out.println(cal.get(Calendar.WEEK_OF_MONTH));//WEEK_OF_YEAR得到指定日期是这一年的第几周System.out.println(cal.get(Calendar.WEEK_OF_YEAR));//根据给定的字段设置成未定义:YEAR会变成1970,MONTH会变成0,但是清除DATE的值却不变??cal.clear(Calendar.DATE);System.out.println(cal.get(Calendar.DATE));//此方法却会将DATE的值置为1cal.clear();System.out.println(cal.get(Calendar.DATE));//给定此 Calendar 的时间值,getActualMaximum返回指定日历字段可能拥有的最大值.//getActualMinimum,返回指定日历字段可能拥有的最小值。System.out.println(cal.getActualMaximum(Calendar.DATE));}
3、java.util.GregorianCalendar
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家使用的标准日历系统。
GregorianCalendar 是一种混合日历,在单一间断性的支持下同时支持儒略历和格里高利历系统,在默认情况下,它对应格里高利日历创立时的格里高利历日期(某些国家是在 1582 年 10 月 15 日创立,在其他国家要晚一些)。可由调用方通过调用 setGregorianChange() 来更改起始日期。
clear 方法将日历字段设置为未定义。GregorianCalendar 为每个日历字段使用以下默认值(如果该值未定义)。
isLeapYear(int year)是否是闰年
4、java.text.DateFormat
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。
DateFormat 提供了很多类方法,以获得基于默认或给定语言环境和多种格式化风格的默认日期/时间 Formatter。格式化风格包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用这些风格的更多细节和示例。
DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。
要格式化一个当前语言环境下的日期,可使用某个静态工厂方法:
myString = DateFormat.getDateInstance().format(myDate);
要格式化不同语言环境的日期,可在 getDateInstance() 的调用中指定它。
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
还可使用 DateFormat 进行解析。
myDate = df.parse(myString);
方法:
String format(Date date)
将一个 Date 格式化为日期/时间字符串。
Calendar getCalendar()
获取与此日期/时间格式器关联的日历。
static DateFormat getDateInstance()
获取日期格式器,该格式器具有默认语言环境的默认格式化风格。
static DateFormat getDateTimeInstance()
获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。
static DateFormat getTimeInstance()
获取时间格式器,该格式器具有默认语言环境的默认格式化风格。
public static void dateFormat() throws ParseException{//DateFormat类的构造函数有protected修饰,只能子类调用。//获取为日期和时间使用 SHORT 风格的默认日期/时间格式器。DateFormat df = DateFormat.getInstance();//获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。df = df.getDateInstance();//将指定字符串转换成Date对象,如果指定格式不正确会抛出ParseException异常。Date d = df.parse("1990-10-20");//将日期格式化为字符串System.out.println(df.format(new Date()));}
5、java.text.SimpleDateFormat
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来创建日期-时间格式器。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器。
模式字母(所有其他字符 'A'
到 'Z'
和 'a'
到 'z'
都被保留):
字母 日期或时间元素 表示 示例 G
Era 标志符TextAD
y
年Year1996
;96
M
年中的月份MonthJuly
;Jul
;07
w
年中的周数Number27
W
月份中的周数Number2
D
年中的天数Number189
d
月份中的天数Number10
F
月份中的星期Number2
E
星期中的天数TextTuesday
;Tue
a
Am/pm 标记TextPM
H
一天中的小时数(0-23)Number0
k
一天中的小时数(1-24)Number24
K
am/pm 中的小时数(0-11)Number0
h
am/pm 中的小时数(1-12)Number12
m
小时中的分钟数Number30
s
分钟中的秒数Number55
S
毫秒数Number978
z
时区General time zonePacific Standard Time
;PST
;GMT-08:00
Z
时区RFC 822 time zone-0800
方法:
Date parse(String text, ParsePosition pos)
解析字符串的文本,生成 Date。
public static void simpleDateFormat() throws ParseException{//用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss:SSS");//将按照指定格式的字符串转换成Date对象Date date = sdf.parse("2013-12-23 22:23:41:234");//将Date对象格式化成指定格式的字符串System.out.println(sdf.format(new Date(2013,11,23)));}==================================================================
以上这些表示日期的类Date,Calendar,GregranCalendar中,Date的大部分方法已过时,推荐使用Calendar。
但是Calendar的getTime方法返回Date对象
GregorianCalendar的getGregorianCalendar方法返回Date对象,却没有将Date对象转换成Calendar和GregorianCalendar的方法。
- java基础--日期
- java 日期基础操作
- 【Java SE基础】日期处理
- Java基础 日期Calendar类
- JAVA基础 时间和日期
- java基础之日期函数
- JAVA基础-日期相关类
- Java基础:日期和时间
- java基础 之 时间日期
- JAVA基础(33) java日期比较,日期计算
- Java基础_日期时间处理
- Java基础复习:日期与时间
- java基础数学日期..相关加强
- java基础之字符串转日期
- Java 基础之日期操作总结
- java基础-时间日期类学习
- Java基础系列之日期时间处理
- Java超级基础之日期与时间
- oracle decode函数使用方法
- hibnernate 多对多 删除; 不是级联删除
- JAVA对字符型文件的读写操作(FileReader、FileWriter)
- kernel学习之ftrace环境搭设及使用(包括buildroot的使用)
- linux内核-进程调度
- java基础--日期
- C语言字符串格式化显示
- UICollectionView
- ajax 传递参数;省的找了 附带trim 方法; 注意url路径;
- mysql存储过程用游标解决返回的结果级并拼装字符
- 在windows下用cygwin和eclipse搭建cocos2dx的android开发环境
- Linux开发者需要知道的10个技巧--转自IBM developerworks
- C中字符串的几种定义方法及说明
- 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串