我使用以下 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 变量中,我得到了,2014年3月6日12:27:55

我期望在日期变量中输出,时间为2014年3月6日,12:27:55

但是,情况越来越相似,IST 2014年3月6日12:27:55

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

请帮忙。

最佳答案

java.util.Date does没有Timezone。它不知道TimeZone

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

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

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

最好的方法是使用Calendar(或Joda Time)。 Calendar有点不直观,但是您可以完成工作。并非毫无理由地不推荐使用Date类。

Calendar初始化Timezone(签出可用的构造函数)。使用Dateformat在想要的任何时区转换并以UI显示。我在您之前的问题中张贴了一些代码。那可能对您有帮助。我陷入了类似的问题。我在一个时区的数据库中有日期。要在用户界面的另一个时区中显示它们,您需要将该日期时间转换为另一个时区。

09-30 21:37
查看更多