【java中时间转换】,当MM变成了mm,当DD变成了dd,会发生什么事?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xaioAdmin/article/details/83240167

记自己一次无知的写法,导致项目产生一个异常。下面拿出实例:

我负责接收接口传递过来的参数,做相应的转换,出入数据库中,一个时间的通过字符串的形式传递过来,这个时间是24小时制,我的转化如下:

JSONObject params = new JSONObject();
String scanTime = params.getString("scanTime");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd  hh:mm:ss");

 测试都是上午测试的,结果就出现了一个问题,中午12点扫描的东西,显示是0点,我就郁闷了,就查看了一下1.8-API

H和h的时间制度是不一样,一个是12小时制,一个是24小时制度,心里不禁感叹java设计的真全面,只怪自己太low,缺乏相关的知识。

还有特别需要注意的是,DD和dd表示的也是不一样的,下面详细解释一下:

日期和时间模式
字母 日期或时间元素 表示 实例
G 年代标志符 Text AD
y Year 1996:96
Y Year 2009;09
M Month July;Jul;07
L 年月(独立形式) Month July;Jul;07
w 一年中第几个星期 Number 27
W 一月中第几个星期 Number 2
D 一年中的第几天 Number 189
d 一月中的第几天 Number 10
F 一月中第几个星期 Number 03
E 星期数(星期一.......星期日) Text 星期日
u 星期数(1 =星期一,7,星期日) Number 7
a 上午 / 下午 标记符 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 时区   CST
Z 时区   =0800
X 时区   +08

大家在使用SimpleDateFormat时,千万要注意大小写,特别是M\m、D\d、S\s、H\h的时间转换。
自己出错,引以为戒。如有不当,恳请指教!

猜你喜欢

转载自blog.csdn.net/xaioAdmin/article/details/83240167
今日推荐