为了账号安全,请及时绑定邮箱和手机立即绑定

Java 的 SimpleDateFormat 解析日期不正确

Java 的 SimpleDateFormat 解析日期不正确

慕姐8265434 2023-03-09 15:04:04
我正在尝试使用“yyyymmddHHssmm”格式解析时间戳。我有两个这样的时间戳:String timeStamp1 = "20190612221303"//this means 12June2019 10:13:03pmString 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());我希望上面的语句打印为真。但可惜它打印错误。Inface Date 的 .getTime() 为 date1 打印 1547310793000,为 date2 打印 1547310803000,这显然是不正确的。有人可以指出这里发生了什么。
查看完整描述

4 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

在格式字符串中,您有mm两次:yyyymmddHHssmm. 第一次出现应该是MM, for month of year.


查看完整回答
反对 回复 2023-03-09
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

发生的事情是你正在使用

m   Minute in hour

你的时间戳正在用日期解析

Sat Jan 12 22:03:13 Date1
Sat Jan 12 22:03:23 Date2

你需要使用

M   Month in year

在文档中查看更多内容


查看完整回答
反对 回复 2023-03-09
?
达令说

TA贡献1821条经验 获得超6个赞

您使用的格式:yyyymmddHHssmm 不明确。

我相信第 5 个和第 6 个字符用于定义月份。为此使用大写的 MM。

你用的是small mm,意思是分钟


查看完整回答
反对 回复 2023-03-09
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

传递给 SimpleDateFormat 的字符串应该是yyyyMMddHHmmss. 看看这里哪个字母代表那个格式化程序中的哪个东西。https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html


查看完整回答
反对 回复 2023-03-09
  • 4 回答
  • 0 关注
  • 286 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信