Java中的时间格式化

Java中的时间格式化

通过java.util.Date我们可以简单的获取当前时间:
Data date = new Date()
通过Data对象我们可以获取很多关于目前时间的信息和操作方法,其中getTime()方法可以获得当前时间的毫秒数,与System.currentTimeMills()方法相同。

Date类提供的一些方法:

1
2
3
4
boolean after(Date date)
boolean before(Date date)
int compareTo(Date date) // equal-0, before-minus
long getTime()

很多时候我们需要将时间以某种特定格式输出或使用,这是我们可以使用java.text.SimpleDateFormat类。

1
2
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss.SSS");
String currentTime = sdf.format(new Date());

其中yyyy等对应着时间里的元素,具体如下:

letter meaning text
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

SimpleDateFormat除了可以将Date时间格式化,还提供parse()方法将字符串解析为Date。

1
2
3
SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd:hh:mm");
String time = "2015-02-02:08:23";
Date date = sdf.parse(time);

另外如果需要设置时间等操作,可以使用Calendar类,这里不再进行扩展。