·
Java
中的
时间
操作不外乎
这
四
种
情况:
1
、
获
取当前
时间
2
、
获
取某个
时间
的某
种
格式
3
、
设
置
时间
4
、
时间
的运算
好,下面就针对这三种情况,一个一个搞定。
一、获取当前时间
有两
种
方式可以
获
得,第一
种
,使用
Date
类
。
j2SE
的包里有两个
Date
类
,一个是
java.sql.Date,
一个是
java.util.Date
这
里,要使用
java.util.Date
。
获
取当前
时间
的代
码
如下
Date date = new Date();
date.getTime();
还
有一
种
方式,使用
System.currentTimeMillis();
这
两
种
方式
获
得的
结
果是一
样
的,都是得到一个当前的
时间
的
long
型的
时间
的毫秒
值
,
这
个
值实际
上是当前
时间值
与
1970
年一月一号零
时
零分零秒相差的毫秒数。
当前的
时间
得到了,但
实际
的
应
用中最后往往不是要用
这
个
long
型的
东
西,用
户
希望得到的往往是一个
时间
的字符串,比如
“2006
年
6
月
18
号
”
,或
“2006-06-18”
,老外可能希望得到的是
“06-18-2006”
,
诸
如此
类
等等。
这
就是下一个要解决的
问题
·
二、获取某个时间的某种格式
获
取
时间
的格式,需要用到一个
专门
用于
时间
格式的
类
java.text.SimpleDateFormat
。
首先,定
义
一个
SimpleDateFormat
变
量
SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
这个构造函数的定义如下:
SimpleDateFormat(String pattern, Locale locale)
第一个参数
pattern
,我
们
后面再解
释
,
这
里我
们
使用一个
"",
第二个参数,是用来
设
置
时
区的,
这
里用到了
java.util.Locale
这
个
类
,
这
个
类
了面定
义
了很多静
态变
量,直接拿
过
来用就
OK
,我
们
把
时
区
设
置
为
Locale.SIMPLIFIED_CHINESE
,只看名字,
这
个静
态变
量的意
义
已
经
很清楚了。
接下来我
们
使用
这
个
SimpleDateFormat
把当前
时间
格式化
为
一个如下格式的
时间
字符串
“XXXX
年
XX
月
XX
日
_XX
时
XX
分
XX
秒
”
,代
码
:
sdf.applyPattern("yyyy
年
MM
月
dd
日
_HH
时
mm
分
ss
秒
");
String timeStr = sdf.format(new Date());
获
取
时间
格式的函数是
format
,
这
个函数的参数是
java.util.Date
对
象,
这
个没有什
么
花
头
。
要
说
明一下的是
这
个
pattern
,所
谓
的模式。
这
里,
yyyy,MM,dd
等,
这
就是模式
。
我
们
可以在
SimpleDateFormat
的构造函数中指定模式,比如
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
·
也可以获取时间格式的时候使用
applyPattern
函数临时指定,上面的例子就是这样。
什
么
字符代表什
么
,
这
是
j2se
约
定好的,
设
置模式的
时
候,我
们
可以使用
约
定好的字符加上任何我
们
想
要的字符串。
j2se
对
字符所代表的模式的
约
定列表如下:
Letter Date or Time Component Presentation G Era designator Text y Year Year M Month in year Month w Week in year Number W Week in month Number D Day in year Number d Day in month Number F Day of week in month Number E Day in week Text a Am/pm marker Text H Hour in day (0-23) Number k Hour in day (1-24) Number K Hour in am/pm (0-11) Number h Hour in am/pm (1-12) Number m Minute in hour Number s Second in minute Number S Millisecond Number z Time zone General time zone Z Time zone RFC 822 time zone