我有一个带有偏移量的输入日期字符串,我想将其转换为自定义格式。问题是,当我使用 Joda 进行转换时DateTimeFormatter
,结果字符串在我的本地时区中。如何转换字符串,但保持时区不变?
这就是我现在所拥有的:
public String getFormattedDate(String dateTimestamp) {
DateTimeFormatter fmt = DateTimeFormat.forPattern("MMM d, yyyy h:m a");
return fmt.print(new DateTime(dateTimestamp));
//return new LocalDateTime(dateTimestamp).toString();
}
这就是我得到的:
input: 2017-03-20T00:00:00 | output: Mar 20, 2017 12:0 AM
input: 2017-03-23T15:12:24-04:00 | output: Mar 23, 2017 12:12 PM
当它是午夜时,我没有得到任何补偿(示例 1)。所以这很好用。但是,在第二个示例中,我得到了一个偏移量(时区是 EST)。我的代码将其转换为我的本地时间 (PST)。我如何避免这种情况?
谢谢。
您需要解析保留时区的日期,如下所示:
return fmt.print(ISODateTimeFormat.dateTimeParser().withOffsetParsed().parseDateTime(dateTimestamp));
该方法withOffsetParsed()
可以解决问题。有了这段代码,我得到了以下内容:
input: 2017-03-20T00:00:00 | output: Mar 20, 2017 12:0 AM
input: 2017-03-23T15:12:24-04:00 | output: Mar 23, 2017 3:12 PM
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句