Java' SimpleDateFormat 错误地解析日期
Java' SimpleDateFormat parsing dates incorrectly
我正在尝试使用 "yyyymmddHHssmm" 格式解析时间戳。
我有两个这样的时间戳:
String timeStamp1 = "20190612221303"//this means 12June2019 10:13:03pm
String timeStamp2 = "20190512222303"//this means 12May2019 10:23:03pm
所以我尝试使用以下方法将这些时间戳字符串转换为 java 日期:
Date date1= new SimpleDateFormat("yyyymmddHHssmm").parse(timeStamp1);
Date date2 = new SimpleDateFormat("yyyymmddHHssmm").parse(timeStamp2);
很明显,当我做
System.out.println(date1.getTime() > date2.getTime());
我希望上面的语句打印正确。
但可惜它打印错误。
接口 Date 的 .getTime() 为 date1 打印 1547310793000,为 date2 打印 1547310803000,这显然是不正确的。
有人能指出这里发生了什么吗。
在格式字符串中,您有两次 mm
:yyyymmddHHssmm
。第一次出现应该是 MM
, for month of year.
您传递给 SimpleDateFormat 的字符串应该是 yyyyMMddHHmmss
。看看这里哪个字母代表那个格式化程序中的哪个东西。 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
您的格式 used:yyyymmddHHssmm 不明确。
我相信第 5 个和第 6 个字符用于定义月份。
为此使用大写的 MM。
你用的是小mm,表示分钟
发生的事情是您正在使用
m Minute in hour
你的时间戳正在用日期解析
Sat Jan 12 22:03:13 Date1
Sat Jan 12 22:03:23 Date2
您需要使用
M Month in year
中查看更多内容
我正在尝试使用 "yyyymmddHHssmm" 格式解析时间戳。 我有两个这样的时间戳:
String timeStamp1 = "20190612221303"//this means 12June2019 10:13:03pm
String timeStamp2 = "20190512222303"//this means 12May2019 10:23:03pm
所以我尝试使用以下方法将这些时间戳字符串转换为 java 日期:
Date date1= new SimpleDateFormat("yyyymmddHHssmm").parse(timeStamp1);
Date date2 = new SimpleDateFormat("yyyymmddHHssmm").parse(timeStamp2);
很明显,当我做
System.out.println(date1.getTime() > date2.getTime());
我希望上面的语句打印正确。 但可惜它打印错误。
接口 Date 的 .getTime() 为 date1 打印 1547310793000,为 date2 打印 1547310803000,这显然是不正确的。 有人能指出这里发生了什么吗。
在格式字符串中,您有两次 mm
:yyyymmddHHssmm
。第一次出现应该是 MM
, for month of year.
您传递给 SimpleDateFormat 的字符串应该是 yyyyMMddHHmmss
。看看这里哪个字母代表那个格式化程序中的哪个东西。 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
您的格式 used:yyyymmddHHssmm 不明确。
我相信第 5 个和第 6 个字符用于定义月份。 为此使用大写的 MM。
你用的是小mm,表示分钟
发生的事情是您正在使用
m Minute in hour
你的时间戳正在用日期解析
Sat Jan 12 22:03:13 Date1
Sat Jan 12 22:03:23 Date2
您需要使用
M Month in year
中查看更多内容