java日期转化操作大全.docx
- 文档编号:11308269
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:18
- 大小:20.53KB
java日期转化操作大全.docx
《java日期转化操作大全.docx》由会员分享,可在线阅读,更多相关《java日期转化操作大全.docx(18页珍藏版)》请在冰豆网上搜索。
java日期转化操作大全
java日期转化操作大全.txt35温馨是大自然的一抹色彩,独具慧眼的匠师才能把它表现得尽善尽美;温馨是乐谱上的一个跳动音符,感情细腻的歌唱者才能把它表达得至真至纯java日期转化操作大全.txt爱人是路,朋友是树,人生只有一条路,一条路上多棵树,有钱的时候莫忘路,缺钱的时候靠靠树,幸福的时候别迷路,休息的时候靠靠树!
java日期转化操作大全
时间和日期中常用到的几个类:
java.util.Date,
java.util.Calendar,
java.util.GregorainCalendar,
java.text.DateFormat,
java.text.SimpleDateFormat
java.util.Date:
表示特定瞬间,精确到毫秒
一天是24*60*60=86400秒
世界时(UT或UTC),格林威治时间(GMT),格林威治时(GMT)和世界时(UT)
是相等的,格林威治时(GMT)是标准的"民间"称呼,世界时(UT)是相同标准的
科学称呼。
UTC和UT的区别是:
UTC是基于原子时钟的,UT是基于天体观察的。
(中文版的jdk真是好啊,跟科普教材是的,呵呵)
常用的构造方法:
Date();
Date(longdate)
(longdate)表示从标准基准时间(称为"历元"epoch,即1970.1.1
00:
00:
00GMT)经历的毫秒数。
还有一些构造方法已经deprecated了
主要的方法:
(介绍几个常用的,详细的查询jdk文档)
booleanafter(Datewhen)测试日期在此日期之后。
booleanbefore(Datewhen)测试日期在此日期之前。
Objectclone()返回此对象的副本
longgetTime()返回自1970.1.100:
00:
00GMT后,此对象表示的毫秒数
voidsetTime(longtime)设置此Date对象,以表示1970年1月1日
00:
00:
00GMT以后time毫秒的时间点。
StringtoString()将Date对象转化成以下形式的
String:
dowmonddhh:
mm:
sszzzyyyy
其中:
dow是一周中的某一天(Sun,Mon,Tue,Wed,Thu,Fri,Sat)。
dow是一周中的某一天(Sun,Mon,Tue,Wed,Thu,Fri,Sat)。
mon是月份(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,
Oct,Nov,Dec)。
dd是一月中的某一天(01至31),显示为两位十进制数。
hh是一天中的小时(00至23),显示为两位十进制数。
mm是小时中的分钟(00至59),显示为两位十进制数。
ss是分钟中的秒数(00至61),显示为两位十进制数。
60,61是因为有"润秒"
zzz是时区(并可以反映夏令时)。
标准时区缩写包括方法parse识别的时区缩写。
如果不提供时区信息,则zzz为空,即根本不包括任何字符。
yyyy是年份,显示为4位十进制数。
使用System.currentTimeMillis()获得当前系统时间的毫秒数
java.util.Calendar:
Calendar类是一个抽象类.
CalendarrightNow=Calendar.getInstance();
可以使用三种方法更改日历字段:
set()、add()和roll()。
set(f,value)将日历字段f更改为value。
此外,它设置了一个内部成员变量,以指示日历字段f已经被更改。
尽管日历字段
f是立即更改的,但是直到下次调用get()、getTime()、getTimeInMillis()、
add()或roll()时才会重新计算日历的时间值(以毫秒为单位)。
因此,多次调
用set()不会触发多次不必要的计算。
add(f,delta)将delta添加到f字段中。
这等同于调用
set(f,get(f)+delta)
roll(f,delta)将delta添加到f字段中,但不更改更大的字段。
java.util.GregorianCalendar:
GregorianCalendar是Calendar的一个具体子类,提供了世界上大多数国家
使用的标准日历系统。
java.text.DateFormat:
DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并
分析日期或时间。
java.text.SimpleDateFormat:
SimpleDateFormat是一个以与语言环境相关的方式来格式化和分析日期的具体类。
它允许进行格式化(日期->文本)、分析(文本->日期)和规范化。
SimpleDateFormat使得可以选择任何用户定义的日期-时间格式的模式。
但是,
仍然建议通过DateFormat中的getTimeInstance、getDateInstance或
getDateTimeInstance来新的创建日期-时间格式化程序。
每一个这样的类方法
都能够返回一个以默认格式模式初始化的日期/时间格式化程序。
可以根据需要使用
applyPattern方法来修改格式模式。
日期和时间格式由日期和时间模式字符串指定。
在日期和时间模式字符串中,未加引号的字母'A'到'Z'和'a'到'z'
被解释为模式字母,用来表示日期或时间字符串元素。
引用
字母日期或时间元素表示示例
GEra标志符TextAD
y年Year1996;96
M年中的月份MonthJuly;Jul;07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesday;Tue
aAm/pm标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm中的小时数(0-11)Number0
ham/pm中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978
z时区GeneraltimezonePacificStandardTime;PST;GMT-08:
00
Z时区RFC822timezone-0800
引用
日期和时间模式结果
"yyyy.MM.ddG'at'HH:
mm:
ssz"2001.07.04ADat12:
08:
56PDT
"EEE,MMMd,''yy"Wed,Jul4,'01
"h:
mma"12:
08PM
"hh'o''clock'a,zzzz"12o'clockPM,PacificDaylightTime
"K:
mma,z"0:
08PM,PDT
"yyyyy.MMMMM.ddGGGhh:
mmaaa"02001.July.04AD12:
08PM
"EEE,dMMMyyyyHH:
mm:
ssZ"Wed,4Jul200112:
08:
56-0700
010*********
"yyyy-MM-dd'T'HH:
mm:
ss.SSSZ"2001-07-04T12:
08:
56.235-0700
获得当前系统的毫秒数:
Java代码
查看源代码
打印
01.packageorg.lokvin.example.calendar;
02.
03.publicclassCalendarExample1{
04.
05.publicstaticvoidmain(String[]args){
06.
07.java.util.Datedate=newjava.util.Date();
08.//获得当前系统的毫秒数,自1970.1.100:
00:
00GMT
09.longtime=System.currentTimeMillis();
10.java.util.Datedate1=newjava.util.Date(time);
11.System.out.println("date="+date.toString());
12.System.out.println("millisecond="+time);
13.System.out.println("date1="+date1.toString());
14.}
15.
16.}
运行结果:
引用
date=MonDec0416:
01:
16CST2006
millisecond=1165219276771
date1=MonDec0416:
01:
16CST2006
代码:
Java代码
查看源代码
打印
01.packageorg.lokvin.example.calendar;
02.
03.importjava.util.Calendar;
04.importjava.util.GregorianCalendar;
05.
06.publicclassCalendarExample2{
07.
08.publicstaticvoidmain(String[]args){
09.//获得当前日期
10.Calendarcalendar=Calendar.getInstance();
11.intera=calendar.get(Calendar.ERA);//0=BC,1=AD
12.System.out.println("ERA="+era);
13.intyear=calendar.get(Calendar.YEAR);//2006
14.System.out.println("YEAR="+year);
15.intmonth=calendar.get(Calendar.MONTH);
16.//获得当前月份,0..11表示JAN..DEC
17.System.out.println("Month="+month);//0=JAN...11=DEC
18.intday=calendar.get(Calendar.DAY_OF_MONTH);
19.System.out.println("DayofMonth="+day);//1
20.//获得日期在本周的天数,Sun=1,Mon=2...Sta=7
21.intday_of_week=calendar.get(Calendar.DAY_OF_WEEK);
22.System.out.println("DayofWeek="+day_of_week);
23.
24.//获得当前时间12时制是Calendar.HOUR
25.inthour12=calendar.get(Calendar.HOUR);
26.//获得AM,PM,0=AM,1=PM
27.intampm=calendar.get(Calendar.AM_PM);
28.System.out.println("hour12="+hour12);
29.System.out.println("ampm="+ampm);//0=am,1=pm
30.//获得当前时间24时制Calendar.HOUR_OF_DAY
31.inthour24=calendar.get(Calendar.HOUR_OF_DAY);
32.System.out.println("hour24="+hour24);
33.
34.
35.Calendartoday=newGregorianCalendar(2006,Calendar.DECEMBER,4);
36.//Calendar.getInstance()得到当前具体到毫秒的一个时间点
37.System.out.println("calendar="+calendar.getTime().toString());
38.//通过newGregorianCalendar(2006,Calendar.DECEMBER,4)
39.//生成的calendar除了指定的年,月,日其余为0(时分秒=0)
40.System.out.println("today="+today.getTime().toString());
41.
42.
43.}
44.
45.}
运行结果:
引用
ERA=1
YEAR=2006
Month=11
DayofMonth=4
DayofWeek=2
hour12=4
ampm=1
hour24=16
calendar=MonDec0416:
22:
42CST2006
today=MonDec0400:
00:
00CST2006
两个日期之间的比较:
代码:
Java代码
查看源代码
打印
01.packageorg.lokvin.example.calendar;
02.
03.importjava.util.Calendar;
04.importjava.util.GregorianCalendar;
05.
06./*
07.*比较两个calendar对象之间的先后
08.*/
09.publicclassCalendarExample3{
10.
11.publicstaticvoidmain(String[]args){
12.//日期比较
13.Calendarxmas=newGregorianCalendar(2006,Calendar.DECEMBER,25);
14.CalendarnewYear=newGregorianCalendar(2007,Calendar.JANUARY,1);
15.
16.//比较两个日期先后
17.booleanflag=xmas.before(newYear);
18.System.out.println("flag="+flag);
19.
20.flag=xmas.after(newYear);
21.System.out.println("flag="+flag);
22.
23.//两个日期相差的毫秒数
24.longtimeDiffMillis=newYear.getTimeInMillis()-xmas.getTimeInMillis();
25.System.out.println("timediffmillis="+timeDiffMillis);
26.
27.//两个日期相差的秒数
28.longdiffSecs=timeDiffMillis/1000;
29.System.out.println("timediffsecs="+diffSecs);
30.
31.//两个日期相差的分钟
32.longdiffMins=timeDiffMillis/(1000*60);
33.System.out.println("timediffmins="+diffMins);
34.
35.//两个日期相差的小时
36.longdiffHours=timeDiffMillis/(1000*60*60);
37.System.out.println("timediffhours="+diffHours);
38.
39.//两个日期相差的天
40.longdiffDays=timeDiffMillis/(1000*60*60*24);
41.System.out.println("timediffdays="+diffDays);
42.
43.}
44.
45.}
运行结果:
引用
flag=true
flag=false
timediffmillis=604800000
timediffsecs=604800
timediffmins=10080
timediffhours=168
timediffdays=7
使用Calendar计算年龄:
代码:
Java代码
查看源代码
打印
01.packageorg.lokvin.example.calendar;
02.
03.importjava.util.Calendar;
04.importjava.util.GregorianCalendar;
05.
06./*
07.*计算年龄
08.*/
09.publicclassCalendarExample4{
10.
11.publicstaticvoidmain(String[]args){
12.//创建生日的Calendar对象
13.CalendarbirthDate=newGregorianCalendar(1979,Calendar.JULY,7);
14.Calendartoday=Calendar.getInstance();
15.intage=today.get(Calendar.YEAR)-birthDate.get(Calendar.YEAR);
16.
17.//如果还没有过生日,则age-1
18.birthDate.add(Calendar.YEAR,age);
19.if(today.before(birthDate)){
20.age--;
21.}
22.System.out.println("age="+age);
23.}
24.
25.}
26.
27.判断是否为闰年:
28.
29.
30.
31.代码
32.packageorg.lokvin.example.calendar;
33.
34.importjava.util.GregorianCalendar;
35.
36./*
37.*判断是否为闰年leapyear
38.*/
39.publicclassCalendarExample5{
40.
41.publicstaticvoidmain(String[]args){
42.//判断是否"闰年"leapyear
43.GregorianCalendarcal=newGregorianCalendar();
44.booleanisLeapYear=cal.isLeapYear(1998);
45.System.out.println("isleapyear1998="+isLeapYear);
46.isLeapYear=cal.isLeapYear(2000);
47.System.out.println("isleapyear2000="+isLeapYear);
48.}
49.}
运行结果:
引用
isleapyear1998=false
isleapyear2000=true
获得其他时区的时间:
代码
Java代码
查看源代码
打印
01.packageorg.lokvin.example.calendar;
02.
03.importjava.util.Calendar;
04.importjava.util.GregorianCalendar;
05.importjava.util.TimeZone;
06.
07./*
08.*获得其他时区当前时间
09.*/
10.
11.publicclassCalendarExample6{
12.
13.publicstaticvoidmain(String[]args){
14.
15.Calendarcal=newGregorianCalendar();
16.inthour12=cal.get(Calendar.HOUR);
17.inthour24=cal.get(Calendar.HOUR_OF_DAY);
18.System.out.println("hour12inourtimezone="+hour12);
19.System.out.println("hour24inourtimezone="+hour24);
20.
21.//获得其他时区的当前时间,根据zoneId获得时区
22.CalendarcalJap=newGregorianCalendar(TimeZone.getTimeZone("Japan"));
23.hour12=calJap.get(Calendar.HOUR);
24.System.out.println("hour12injapstimezone="+hour12);
25.hour24=calJap.get(Calendar.HOUR_OF_DAY);
26.System.out.println("hour24injapstimezone="+hour24);
27.
28.//获得zoneId的列表
29.String[]zoneIds=Time
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 日期 转化 操作 大全
![提示](https://static.bdocx.com/images/bang_tan.gif)