gpt4 book ai didi

java - 字符串到日期的转换正在浪费时间

转载 作者:行者123 更新时间:2023-12-01 08:02:13 25 4
gpt4 key购买 nike

有谁知道为什么 Date 在从 String 转换时会丢失时间值?我似乎无法弄清楚这一点。

这是我使用的 SimpleDateFormat 类型:

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE MM/dd/yyyy HH:mm a");

我尝试转换的日期是以下形式的字符串:

 String dateString = "Mon 06/23/2014 03:00 PM";

当我执行以下操作时:

    Date convertDateFromString = null;
try{

convertDateFromString = simpleDateFormat.parse(dateString);
}catch(ParseException ex){

ex.printStackTrace();
}

System.out.println(convertDateFromString.getTime());

我的输出是:1403496000000

预期输出为:1403550000000

有人可以帮助我理解为什么时间没有被解析吗?

更新 - 已解决 --->> 在 Jon Skeet 的帮助下

现在使用这个 SimpleDateFormat

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE MM/dd/yyyy hh:mm a", Locale.getDefault());

现在输出是正确的。

最佳答案

您已在格式中指定了 HH,即 24 小时格式。但您有一个 AM/PM 指示符。

因此,“03:00 PM”没有意义 - 它同时尝试表示凌晨 3 点(24 小时内的 03 点)和下午 3 点(数据中的下午)。

听起来您可能希望在格式字符串中使用 hh 作为 12 小时说明符。

这是问题的部分。接下来是时区。您的预期值 (1403550000000) 代表 2014-06-23 19:00:00Z。因此,您可能希望使用当前比 UTC 晚 4 小时的时区。

您目前的实际值 (1403496000000) 是 2014-06-23 04:00:00Z...因此它似乎是在比 UTC 晚 1 小时的时区中解析的。

您需要确定数据所在的时区,并在 SimpleDateFormat 中明确指定。

关于java - 字符串到日期的转换正在浪费时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24452905/

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