将带有偏移量的日期字符串转换为忽略偏移量的自定义格式

醉拳

我有一个带有偏移量的输入日期字符串,我想将其转换为自定义格式。问题是,当我使用 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)。我如何避免这种情况?

谢谢。

用户7605325

您需要解析保留时区的日期,如下所示:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java将ISO 8601字符串转换为日期,忽略偏移量

在bash Shell脚本中将带有偏移量字符串的GMT转换为MST

如何忽略字符串日期时间的偏移量

将具有UTC偏移量的字符串转换为日期时间对象

带有偏移量的子字符串反转

熊猫数据帧日期时间 - 将字符串转换为日期时间偏移量

接收包括字符串的时区偏移量的日期,并使用该时区转换为其他格式

使用偏移量将字符串日期转换为DateTimePST(String)和DateTimeLocal(String)?

非法字符串偏移量未定义偏移量:2

使用strptime将带有偏移量的时间戳转换为datetime obj

如何使用UTC偏移量转换字符串

解析 ZonedDateTime.parse 忽略偏移量

自定义matplotlib偏移量的偏移

带有 float 和 int 字符串的非法字符串偏移量

Python使用时区偏移量转换日期/时间字符串

将时区pytz字符串转换为python / django中的偏移量

转换为缺少的加号偏移量datetime字符串为正确的datetime

将时区字符串(即美国/东部)转换为偏移量

带有行和列偏移量的Javascript评估字符串?

PySpark-Spark SQL:如何将带有UTC偏移量的时间戳转换为epoch / unixtime?

将Pandas偏移量转换为Python日期

自定义UITableCell annexView偏移量内部图像

时区偏移量被忽略

带有不同数字的未定义偏移量

在字符串中查找元素的偏移量

Laravel-非法字符串偏移量

警告:字符串偏移量非法

非法的字符串偏移量警告PHP

CakePHP非法字符串偏移量