Java中关于时间的操作主要是:
1、获取当前时间,和某个时间进行比较。此时主要拿long型的时间值。
方法如下:
要使用
java.util.Date
。获取当前时间的代码如下
Date date = new Date();
date.getTime()
;
还有一种方式,使用
System.currentTimeMillis()
;
都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数
2、获取某种格式的日期。
方法:
获取时间的格式,需要用到一个专门用于时间格式的类
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
|
posted on 2006-07-18 13:53
黑咖啡 阅读(18866)
评论(1) 编辑 收藏 所属分类:
Java Dev