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

Java中时间日期格式化

2015-12-23 02:03 447 查看
1、与日期时间相关的类:
第一:java.util.Date;将时间作为一个整体使用、处理时,使用Date类较为简便
第二:java.util.Calender;要处理时间的一部分,如月、分时,使用Calendar类较为简便
第三:java.text.DateFormat抽象类,是SimpleDateFormate的父类
第四:java.text.SimpleDateFormate时间日期转换时,用的最多的类

2、日期和时间模式

日期和时间格式由日期和时间模式字符串指定。

在日期和时间模式字符串中,未加引号的字母
'A'
'Z'
'a'
'z'
被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号(
'
)引起来,以免进行解释。
"''"
表示单引号。

所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符
'A'
'Z'
'a'
'z'
都被保留):

字母日期或时间元素表示示例
G
Era标志符Text
AD
y
Year
1996
;
96
M
年中的月份Month
July
;
Jul
;
07
w
年中的周数Number
27
W
月份中的周数Number
2
D
年中的天数Number
189
d
月份中的天数Number
10
F
月份中的星期Number
2
E
星期中的天数Text
Tuesday
;
Tue
a
Am/pm标记Text
PM
H
一天中的小时数(0-23)Number
0
k
一天中的小时数(1-24)Number
24
K
am/pm中的小时数(0-11)Number
0
h
am/pm中的小时数(1-12)Number
12
m
小时中的分钟数Number
30
s
分钟中的秒数Number
55
S
毫秒数Number
978
z
时区Generaltimezone
PacificStandardTime
;
PST
;
GMT-08:00
Z
时区RFC822timezone
-0800
为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制

3、格式转换

DateFormat类中的两个方法:

publicDateparse(Stringsource)throwsParseException

A.parse(B):将字符串B按照A的形式解析成DateA是DateFormat或者其子类的实例

publicfinalStringformat(Datedate)

A.format(B):将一个Date类型的B格式化为A格式的字符串A是DateFormat或者其子类的实例

实例:将2008-10-1910:11:30.345转化为2008年10月19日10时11分30秒345毫秒

publicstaticvoidmain(Stringargs[]){
StringstrDate="2008-10-1910:11:30.345";
SimpleDateFormatsdf1=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss.SSS");//实例化模板对象
SimpleDateFormatsdf2=newSimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒");
Dated=null;
try{
d=sdf1.parse(strDate);//将给定的字符串中解析成日期
System.out.println(d);//SunOct1910:11:30CST2008
}catch(Exceptione){
e.printStackTrace();
}
System.out.println(sdf2.format(d));//将日期格式化为字符串2008年10月19日10时11分30秒345毫秒

}

4、日期比较、加减

Date类中的两个方法:

publiclonggetTime()返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数。

publicvoidsetTime(longtime)设置此[code]Date
对象,以表示1970年1月1日00:00:00GMT以后
time
毫秒的时间点。

实例:求出sourceTime,过minuteNumber分钟后的时间
[/code]
publicstaticStringgetPreTime(StringsourceTime,StringminuteNumber){
SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
Stringmydate1="";
try{
Datedate1=format.parse(sourceTime);
longTime=(date1.getTime()/1000)+Integer.parseInt(minuteNumber)*60;
date1.setTime(Time*1000);
mydate1=format.format(date1);
}catch(Exceptione){}
returnmydate1;
}

5、时间戳:某个时间点的时间戳就是:该时间点距1970年1月1日00:00:00相差的毫秒数

获得当前时间的时间戳:newDate().getTime();System.currentTimeMillis();



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: