gpt4 book ai didi

java - java中日期转换错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:46:54 27 4
gpt4 key购买 nike

String date = jsonobject.getString("needbydate");
DateFormat df = new SimpleDateFormat("MMM/dd/yyyy");
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");
Date startDate = sdf.parse(date);
String needbydate = df.format(startDate).toString()+"";

发生了什么::

  • 一开始

日期=2014-12-17T21:37:00+00:00

  • 最后

needbydate= 2014 年 12 月 18 日

17 更改为 18 ....我在转换时做错了什么


编辑:

            String date=jsonobject.getString("needbydate");
DateFormat df = new SimpleDateFormat("MMM/dd/yyyy",Locale.ENGLISH);
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss",Locale.ENGLISH);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date startDate;
startDate = sdf.parse(date);
needbydate = df.format(startDate).toString()+"";

最佳答案

您的日期格式使用的是系统默认时区。这对您的输入没问题,因为它明确指定了 UTC 偏移量 - 但对于您的输出,您只有一个日期。因此,它会向您显示该时间点在您的系统时区中发生的日期。

您需要考虑您想要的时区 - 以及它是否受到输入中非零偏移量的影响。您可以使用 DateFormat.setTimeZone设置要在输出中使用的时区。 (例如,2014-12-17T21:37:00-05:00 应该显示为 12 月 18 日(UTC)还是 12 月 17 日(源时区)?)

您还应该在输入格式中使用 HH 而不是 hh,因为它显然是 24 小时值而不是 12 小时值。

关于java - java中日期转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com