【问题标题】:Creating date in java with SimpleDateFormat [duplicate]使用 SimpleDateFormat 在 java 中创建日期 [重复]
【发布时间】:2015-09-07 07:18:12
【问题描述】:

更新: 真的?!!!复制???我的格式是正确的(yyyy/MM/dd HH:mm:ss),但返回时间不正确。这与另一个问题有何相似之处????

我正在尝试创建 java Date,但它总是返回错误的值。这是我的代码:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:MM:SS");
Date GreDate = dateFormat.parse("2014/03/22 00:00:00");

并且GreDate 返回Sun Dec 22 00:00:00 GMT+03:30 2013 作为值。 请不要建议使用外部库作为日期类型。

更新:

我把我的模式改成了这样:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

现在GreDate 返回Sat Mar 22 01:00:00 GMT+04:30 2014。年份正确但时间仍然不正确00:00:00.

【问题讨论】:

  • "M | 一年中的月份(上下文相关)| 月份 | 七月;七月;07"; "m | 分钟数 | 30" ; “S | 毫秒 | 数字 | 978”。不要忘记阅读the JavaDocs
  • 应该是时区问题,dateFormat.setTimeZone(TimeZone.getTimeZone("${inputyourtimezone}"));你可以在日期解析之前设置时区。
  • 我也认为你的问题在那里有答案。如果您不同意,请编辑您的问题以明确区别,并在评论中解释。

标签: java date


【解决方案1】:

注意:

  • MM 是月份,mm 是分钟。
  • SS 是毫秒,ss 是秒。

所以你需要将你的 dateFormat 更改为

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

基本上,您的模式中有两个错误,都在时间部分(秒和分钟)。

这里是完整文档的链接link

【讨论】:

  • 解决年份问题并返回 'Sat Mar 22 01:00:00 GMT+04:30 2014' 但我希望时间是 00:00:00 而不是 01:00:00
  • @HosseinR System.out.println(dateFormat.format(GreDate)); 是什么?我怀疑您的时区可能会干扰您的结果
  • @MadProgrammer 返回“2014/03/22 01:00:00”
  • @HosseinR 嗯,适用于:P。你的时区是多少
  • @MadProgrammer 我的时区是 +4:30(德黑兰)
猜你喜欢
  • 2021-06-22
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多