gpt4 book ai didi

java - 解析日期以删除时区

转载 作者:搜寻专家 更新时间:2023-11-01 02:26:21 27 4
gpt4 key购买 nike

我使用下面的 SimpleDateFormat 来解析一个字符串,

 SimpleDateFormat ft= new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");
String notimeZone = ft.format(startDateTime);
Date date = ft.parse(notimeZone);

startDateTime 是日期对象,其值格式为“Thu Mar 06 12:27:55 IST 2014”。

notimeZone 变量中,我得到了 Thu Mar 06 12:27:55 2014

我期望变量 date 的输出为 Thu Mar 06 12:27:55 2014

但我也一样,Thu Mar 06 12:27:55 IST 2014。

如何从日期对象中删除时区。

请帮忙。

最佳答案

java.util.Date 没有 时区。它不知道 TimeZone

打印时,java 会选择默认时区。

从概念上讲,您不能没有没有时区的日期时间。日期时间必须在一个且只有一个区域中。您可以将其转换为其他区域,但它永远不能没有区域。

如果您的业务用例需要了解时区,我更愿意使用 Calendar 类或 Joda Time。避免玩 Date 类。如果您的业务用例不需要任何时区意识,那么继续使用日期。假设所有 Date 实例都在您的默认时区内。

最好的办法是使用Calendar(或Joda Time)。 Calendar 有点不直观,但您可以完成工作。 Date 类大部分被弃用并非没有原因。

使用 Timezone 初始化您的 Calendar(查看可用的构造函数)。使用 Dateformat 以您希望的任何时区在 UI 中进行转换和显示。我在您之前的问题中发布了一些代码。那可能对你有帮助。我陷入了类似的问题。我在一个时区的数据库中有日期。要在 UI 上以另一个时区显示它们,您需要将该日期时间转换为另一个时区。

关于java - 解析日期以删除时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22217422/

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