首先我想说的是,我已经阅读了几个与此类似的帖子,但它们都没有真正解决我的问题。我还想声明,我曾尝试使用SimpleDateFormat
和joda.DateTime
,但都没有成功。
问题如下:
我有一个Calendar对象,它保存有关特定日期的信息: 2008-04-30T00:00:00Z当使用calendar.getTime()
方法时,我可以得到不同的结果,因为我知道该方法正在查找本地值
因此:
UK: 2008-04-30T01:00:00.000+0100
US: 2008-04-30T20:00:00.000-0400
但是我想得到一个Date对象,它只包含日期和时间值"2008-04-30T00:00:00“,完全忽略任何时区。
我该怎么做呢?
正如我之前提到的,我尝试使用SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
,但是我总是得到相同的结果。
任何帮助都是非常感谢的干杯。
发布于 2015-11-10 12:13:05
发现您可以使用以下代码清除时区:
Calendar cal = Calendar.getInstance(); cal.clear(Calendar.ZONE_OFFSET);
发布于 2012-07-10 23:46:35
您是否使用标准构造函数来初始化Calendar?如果您使用了允许指定时区和区域设置的构造函数会怎么样?
protected Calendar(TimeZone zone, Locale aLocale)
发布于 2019-06-13 03:37:57
正如其他人指出的那样,没有时区,Calendar
和Date
对象就不能存在。
我相信您可能希望将Java8中引入的LocalDateTime类与新的time API一起使用:
LocalDateTime literal = LocalDateTime.of(2008, 4, 30, 0, 0, 0);
LocalDateTime parsed = LocalDateTime.parse("2008-04-30T00:00:00"); // ISO-8601 by default
Assert.assertEquals(literal, parsed);
https://stackoverflow.com/questions/11416914
复制相似问题