有关java中时间格式的调整
在java中获取一个时间或者是处理时间数据时,往往会发现时间的格式不是我们所需要的。这个时候如果把时间转化成
字符串,然后在处理是可以,不过呢?你会不会觉得很是麻烦。我个人认为在一个大型的项目对字符串操作多了,不是什么好事。
如果你常用java API文档你会发现这个类的SimpleDateFormat,这个类就是格式化时间的。
使用方法也是很简单的
SimpleDateFormat form = new SimpleDateFormat("yyyyMMddHHmmss");
form.format(时间); 其中SimpleDateFormat构造函数内的字符串就是格式化输入的格式:
字母 日期或时间元素 表示 示例
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 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800 说明一下:
模式字母通常是重复的,其数量确定其精确表示:
Text: 对于格式化来说,如果模式字母的数量大于或等于 4,则使用完全形式;否则,在可用的情况下使用短形式或缩写形式。对
于分析来说,两种形式都是可接受的,与模式字母的数量无关。
Number: 对于格式化来说,模式字母的数量是最小的数位,如果数位不够,则用 0 填充以达到此数量。对于分析来说,模式字母
的数量被忽略,除非必须分开两个相邻字段。
Year: 对于格式化来说,如果模式字母的数量为 2,则年份截取为 2 位数,否则将年份解释为 number。
对于分析来说,如果模式字母的数量大于 2,则年份照字面意义进行解释,而不管数位是多少。因此使用模式 "MM/dd/yyyy",将
"01/11/12" 分析为公元 12 年 1 月 11 日。