java中各种时间格式的转化.docx

上传人:b****5 文档编号:7824626 上传时间:2023-01-26 格式:DOCX 页数:10 大小:19.67KB
下载 相关 举报
java中各种时间格式的转化.docx_第1页
第1页 / 共10页
java中各种时间格式的转化.docx_第2页
第2页 / 共10页
java中各种时间格式的转化.docx_第3页
第3页 / 共10页
java中各种时间格式的转化.docx_第4页
第4页 / 共10页
java中各种时间格式的转化.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

java中各种时间格式的转化.docx

《java中各种时间格式的转化.docx》由会员分享,可在线阅读,更多相关《java中各种时间格式的转化.docx(10页珍藏版)》请在冰豆网上搜索。

java中各种时间格式的转化.docx

java中各种时间格式的转化

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 

"yyMMddHHmmssZ"010704120856-0700 

"yyyy-MM-dd'T'HH:

mm:

ss.SSSZ"2001-07-04T12:

08:

56.235-0700

 

获得当前系统的毫秒数:

代码

packageorg.lokvin.example.calendar;    

   

publicclassCalendarExample1{    

        

   publicstaticvoidmain(String[]args){    

            

       java.util.Datedate=newjava.util.Date();    

       //获得当前系统的毫秒数,自1970.1.100:

00:

00GMT    

       longtime=System.currentTimeMillis();    

       java.util.Datedate1=newjava.util.Date(time);    

       System.out.println("date="+date.toString());    

       System.out.println("millisecond="+time);    

       System.out.println("date1="+date1.toString());      

   }    

   

}   

运行结果:

引用

date=MonDec0416:

01:

16CST2006 

millisecond=1165219276771 

date1=MonDec0416:

01:

16CST2006

 

 

代码

packageorg.lokvin.example.calendar;    

   

importjava.util.Calendar;    

importjava.util.GregorianCalendar;    

   

publicclassCalendarExample2{    

        

   publicstaticvoidmain(String[]args){    

       //获得当前日期    

       Calendarcalendar=Calendar.getInstance();    

       intera=calendar.get(Calendar.ERA);//0=BC,1=AD    

       System.out.println("ERA="+era);    

       intyear=calendar.get(Calendar.YEAR);//2006    

       System.out.println("YEAR="+year);    

       intmonth=calendar.get(Calendar.MONTH);    

       //获得当前月份,0..11表示JAN..DEC    

       System.out.println("Month="+month);//0=JAN...11=DEC    

       intday=calendar.get(Calendar.DAY_OF_MONTH);    

       System.out.println("DayofMonth="+day);//1    

       //获得日期在本周的天数,Sun=1,Mon=2...Sta=7    

       intday_of_week=calendar.get(Calendar.DAY_OF_WEEK);    

       System.out.println("DayofWeek="+day_of_week);    

            

       //获得当前时间12时制是Calendar.HOUR    

       inthour12=calendar.get(Calendar.HOUR);    

       //获得AM,PM,0=AM,1=PM    

       intampm=calendar.get(Calendar.AM_PM);    

       System.out.println("hour12="+hour12);    

       System.out.println("ampm="+ampm);//0=am,1=pm    

       //获得当前时间24时制Calendar.HOUR_OF_DAY    

       inthour24=calendar.get(Calendar.HOUR_OF_DAY);    

       System.out.println("hour24="+hour24);    

            

            

       Calendartoday=newGregorianCalendar(2006,Calendar.DECEMBER,4);    

       //Calendar.getInstance()得到当前具体到毫秒的一个时间点    

       System.out.println("calendar="+calendar.getTime().toString());    

       //通过newGregorianCalendar(2006,Calendar.DECEMBER,4)    

       //生成的calendar除了指定的年,月,日其余为0(时分秒=0)    

       System.out.println("today="+today.getTime().toString());    

            

            

   }    

   

}    

  

运行结果:

引用

ERA=1 

YEAR=2006 

Month=11 

DayofMonth=4 

DayofWeek=2 

hour12=4 

ampm=1 

hour24=16 

calendar=MonDec0416:

22:

42CST2006 

today=MonDec0400:

00:

00CST2006

 

两个日期之间的比较:

代码

packageorg.lokvin.example.calendar;    

   

importjava.util.Calendar;    

importjava.util.GregorianCalendar;    

   

/*   

*比较两个calendar对象之间的先后   

*/   

publicclassCalendarExample3{    

        

   publicstaticvoidmain(String[]args){    

       //日期比较    

       Calendarxmas=newGregorianCalendar(2006,Calendar.DECEMBER,25);    

       CalendarnewYear=newGregorianCalendar(2007,Calendar.JANUARY,1);    

            

       //比较两个日期先后    

       booleanflag=xmas.before(newYear);    

       System.out.println("flag="+flag);    

            

       flag=xmas.after(newYear);    

       System.out.println("flag="+flag);    

            

       //两个日期相差的毫秒数    

       longtimeDiffMillis=newYear.getTimeInMillis()-xmas.getTimeInMillis();    

       System.out.println("timediffmillis="+timeDiffMillis);    

            

       //两个日期相差的秒数    

       longdiffSecs=timeDiffMillis/1000;    

       System.out.println("timediffsecs="+diffSecs);    

            

       //两个日期相差的分钟    

       longdiffMins=timeDiffMillis/(1000*60);    

       System.out.println("timediffmins="+diffMins);    

            

       //两个日期相差的小时    

       longdiffHours=timeDiffMillis/(1000*60*60);    

       System.out.println("timediffhours="+diffHours);    

            

       //两个日期相差的天    

       longdiffDays=timeDiffMillis/(1000*60*60*24);    

       System.out.println("timediffdays="+diffDays);    

                

   }    

   

}   

运行结果:

 

引用

flag=true 

flag=false 

timediffmillis=604800000 

timediffsecs=604800 

timediffmins=10080 

timediffhours=168 

timediffdays=7

 

 

使用Calendar计算年龄:

 

代码

packageorg.lokvin.example.calendar;    

   

importjava.util.Calendar;    

importjava.util.GregorianCalendar;    

   

/*   

*计算年龄   

*/   

publicclassCalendarExample4{    

       

   publicstaticvoidmain(String[]args){    

       //创建生日的Calendar对象    

       CalendarbirthDate=newGregorianCalendar(1979,Calendar.JULY,7);    

       Calendartoday=Calendar.getInstance();    

       intage=today.get(Calendar.YEAR)-birthDate.get(Calendar.YEAR);    

            

       //如果还没有过生日,则age-1    

       birthDate.add(Calendar.YEAR,age);    

       if(today.before(birthDate)){    

           age--;    

       }    

       System.out.println("age="+age);    

   }    

   

       

   

}   

判断是否为闰年:

 

代码

packageorg.lokvin.example.calendar;    

   

importjava.util.GregorianCalendar;    

   

/*   

*判断是否为闰年leapyear   

*/   

publicclassCalendarExample5{    

        

   publicstaticvoidmain(String[]args){    

       //判断是否"闰年"leapyear    

       GregorianCalendarcal=newGregorianCalendar();    

       booleanisLeapYear=cal.isLeapYear(1998);    

       System.out.println("isleapyear1998="+isLeapYear);    

       isLeapYear=cal.isLeapYear(2000);    

       System.out.println("isleapyear2000="+isLeapYear);    

   }    

}   

运行结果:

引用

isleapyear1998=false 

isleapyear2000=true

 

获得其他时区的时间:

代码

packageorg.lokvin.example.calendar;    

   

importjava.util.Calendar;    

importjava.util.GregorianCalendar;    

importjava.util.TimeZone;    

   

/*   

*获得其他时区当前时间   

*/   

   

publicclassCalendarExample6{    

        

   publicstaticvoidmain(String[]args){    

            

       Calendarcal=newGregorianCalendar();    

       inthour12=cal.get(Calendar.HOUR);    

       inthour24=cal.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1