java - 我可以在 DateTimeFormatter 上对区域偏移格式进行更多控制吗

标签 java datetime-format

<分区>

目前我们正在使用

DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX")

要将时间范围格式化为外部供应商的一系列数据,对于印度,该格式化程序将像这样提供时间:

2018-04-26T00:00:00.000+0530

但是,我的供应商说他们不能接受这种格式,它必须看起来像

2018-04-26T00:00:00.000+05:30

但是,在 DateTimeFormatter 中,无论我选择 Z/z/X/x,我都没有得到那种格式的偏移量。只是想知道是否有一种方法可以将偏移量自定义为 HH:mm?

或者,我需要在第二个时间获得偏移量并自己工作?

最佳答案

是三个x。刚试过 JavaRepl :

java.time.format.DateTimeFormatter
    .ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSxxx")
    .withZone(java.time.ZoneId.systemDefault())
    .format(java.time.Instant.now())

结果

java.lang.String res10 = "2018-04-27T11:06:50.648+00:00"

经过反复试验,我看到 DateTimeFormatter 的 API 文档中也记录了这一点,但并不容易找到(埋在很多其他文本中):

Three letters outputs the hour and minute, with a colon, such as '+01:30'

DateTimeFormatter API Documentation

关于java - 我可以在 DateTimeFormatter 上对区域偏移格式进行更多控制吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50060917/

相关文章:

c# - .NET:为什么 TryParseExact 在 Hmm 和 Hmmss 上失败?

datetime - 如何在 VBScript 中使用最少的分隔符和时区格式化日期时间?

c# - 如何根据文化显示只有日期和月份的日期字符串?

java - Jodatime DateTimeFormatter 需要打印 GMT 时间而不是 UTC

java - 如何使用 Java 在浏览器上显示图像?

java - Appengine 任务负载可以有多大?

java - 似乎无法将 int 转换为字符串并运行我的程序,因此它输出 330

java - 比较两个散列图值与键

java - 工作流引擎用例

c# - 为什么我从 CultureInfo 得到的时间格式不正确?