我可以在DateTimeFormatter

时间:2018-04-27 10:56:07

标签: 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?

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

1 个答案:

答案 0 :(得分:6)

这是三个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文档中也记录了这一点,但要找到它并不容易(隐藏在很多其他文本中):

  

三个字母输出小时和分钟,带冒号,例如'+01:30'

DateTimeFormatter API Documentation