您的位置:首页 > 编程语言 > Java开发

java Dates &Times完全总结

2007-07-16 19:50 363 查看
1.获得当前时间的方法:

利用java.until.Date

System.err.print("Formant1:");
System.out.println(newDate(System.currentTimeMillis()));
//System.out.print("The2formant:");

System.err.print("Formant2:");
Dated=newDate();
longt=d.getTime();
System.out.println(newDate(t));

//System.out.println(d.toLocaleString());

System.err.print("Formant3:");
Calendardate=Calendar.getInstance();
date.add(Calendar.DATE,0);//当前的前一天
System.out.println(date.getTime());

利用java.until.Calendar

//GetaCalendarforcurrentlocaleandtimezone
Calendarcal=Calendar.getInstance();

//Figureoutwhatdayoftheyeartodayis
cal.setTimeInMillis(System.currentTimeMillis());//Settothecurrenttime
intdayOfYear=cal.get(Calendar.DAY_OF_YEAR);//Whatdayoftheyearisit?

//Whatdayoftheweekdoestheleapdayintheyear2008occuron?
cal.set(2008,Calendar.FEBRUARY,29);//Setyear,month,dayfields
intdayOfWeek=cal.get(Calendar.DAY_OF_WEEK);//Queryadifferentfield

//Whatdayofthemonthisthe3rdThursdayofMay,2005?
cal.set(Calendar.YEAR,2005);//Settheyear
cal.set(Calendar.MONTH,Calendar.MAY);//Setthemonth
cal.set(Calendar.DAY_OF_WEEK,Calendar.THURSDAY);//Setthedayofweek
cal.set(Calendar.DAY_OF_WEEK_IN_MONTH,3);//Settheweek
intdayOfMonth=cal.get(Calendar.DAY_OF_MONTH);//Querythedayinmonth

//GetaDateobjectthatrepresentsthreemonthsfromnow
cal.setTimeInMillis(System.currentTimeMillis());//Currenttime
cal.add(Calendar.MONTH,3);//Add3months
Dateexpiration=cal.getTime();//RetrieveresultasaDate
longmillis=cal.getTimeInMillis();//orgetitasalong


2.时间的格式:

//currenthoursandminutes
longnow=System.currentTimeMillis();
Strings=String.format("%tR",now);//"15:12"

//Currentmonth/day/year
Dated=newDate(now);
s=String.format("%tD",d);//"07/13/04"

//Hoursandminutesusing12-hourclock
Calendarc=Calendar.getInstance();
c.setTime(d);
s=String.format("%tl:%tM%tp",now,d,c);//"3:12pm"


时间格式的转换

日期/时间转换

以下日期和时间转换的后缀字符是为't'和'T'转换定义的。这些类型相似于但不完全等同于那些由GNU
date和POSIXstrftime(3c)定义的类型。提供其他转换类型是为了访问特定于Java的功能(如将
'L'用作秒中的毫秒)。

以下转换字符用来格式化时间:
'H'24小时制的小时,被格式化为必要时带前导零的两位数,即00-23。
'I'12小时制的小时,被格式化为必要时带前导零的两位数,即01-12。
'k'24小时制的小时,即0-23。
'l'12小时制的小时,即1-12。
'M'小时中的分钟,被格式化为必要时带前导零的两位数,即00-59。
'S'分钟中的秒,被格式化为必要时带前导零的两位数,即00-60("60"是支持闰秒所需的一个特殊值)。
'L'秒中的毫秒,被格式化为必要时带前导零的三位数,即000-999。
'N'秒中的毫微秒,被格式化为必要时带前导零的九位数,即000000000-999999999。
'p'特定于语言环境的上午或下午标记以小写形式表示,例如"am"或"pm"。使用转换前缀'T'可以强行将此输出转换为大写形式。
'z'相对于GMT的RFC822格式的数字时区偏移量,例如-0800。
'Z'表示时区缩写形式的字符串。Formatter的语言环境将取代参数的语言环境(如果有)。
's'自协调世界时(UTC)1970年1月1日00:00:00至现在所经过的秒数,即Long.MIN_VALUE/1000与Long.MAX_VALUE/1000之间的差值。
'Q'自协调世界时(UTC)1970年1月1日00:00:00至现在所经过的毫秒数,即Long.MIN_VALUE与Long.MAX_VALUE之间的差值。
以下转换字符用来格式化日期:
'B'特定于语言环境的月份全称,例如"January"和"February"。
'b'特定于语言环境的月份简称,例如"Jan"和"Feb"。
'h'与'b'相同。
'A'特定于语言环境的星期几全称,例如"Sunday"和"Monday"
'a'特定于语言环境的星期几简称,例如"Sun"和"Mon"
'C'除以100的四位数表示的年份,被格式化为必要时带前导零的两位数,即00-99
'Y'年份,被格式化为必要时带前导零的四位数(至少),例如,0092等于格里高利历的92CE。
'y'年份的最后两位数,被格式化为必要时带前导零的两位数,即00-99。
'j'一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是001-366。
'm'月份,被格式化为必要时带前导零的两位数,即01-13。
'd'一个月中的天数,被格式化为必要时带前导零两位数,即01-31
'e'一个月中的天数,被格式化为两位数,即1-31。
以下转换字符用于格式化常见的日期/时间组合。
'R'24小时制的时间,被格式化为"%tH:%tM"
'T'24小时制的时间,被格式化为"%tH:%tM:%tS"。
'r'12小时制的时间,被格式化为"%tI:%tM:%tS%Tp"。上午或下午标记('%Tp')的位置可能与语言环境有关。
'D'日期,被格式化为"%tm/%td/%ty"。
'F'ISO8601格式的完整日期,被格式化为"%tY-%tm-%td"。
'c'日期和时间,被格式化为"%ta%tb%td%tT%tZ%tY",例如"SunJul2016:17:00EDT1969"。

[/code]
3.使用DateFormat

importjava.util.Date;
importjava.text.*;

//Displaytoday'sdateusingadefaultformatforthecurrentlocale
DateFormatdefaultDate=DateFormat.getDateInstance();
System.out.println(defaultDate.format(newDate()));

//Displaythecurrenttimeusingashorttimeformatforthecurrentlocale
DateFormatshortTime=DateFormat.getTimeInstance(DateFormat.SHORT);
System.out.println(shortTime.format(newDate()));

//Displaydateandtimeusingalongformatforboth
DateFormatlongTimestamp=
DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
System.out.println(longTimestamp.format(newDate()));

//UseSimpleDateFormattodefineyourownformattingtemplate
//Seejava.text.SimpleDateFormatforthetemplatesyntax
DateFormatmyformat=newSimpleDateFormat("yyyy.MM.dd");
System.out.println(myformat.format(newDate()));
try{//DateFormatcanparsedatestoo
Dateleapday=myformat.parse("2000.02.29");
}
catch(ParseExceptione){/*Handleparsingexception*/}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: