【问题标题】:Dataweave Date Formatting with Timezone带时区的 Dataweave 日期格式
【发布时间】:2021-02-23 14:28:15
【问题描述】:

我正在尝试将日期格式化为以下格式,带有时区偏移的 UTC:

预期: 2021-01-20T21:00:00-06:00

实际: 2021-01-20T00:00:00-06:00

代码:

var arrivedAt = "2021-01-20T15:00:00"
var timezone = "America/Chicago"

var finalDateTime = (((arrivedAt as Date) as String {format: "yyyy-MM-dd'T'00:00:00"}) as LocalDateTime ++ (timezone as String)) 

我假设这是由于格式中的“00:00:00”,但是当我尝试使用“HH”或“hh”时,我收到了错误。

【问题讨论】:

  • 为什么在从 UTC 时间取到 -06:00 后预计小时为 21?好像不对。
  • 如果时间是中部标准时间下午 3:00/15:00,这不是世界标准时间晚上 9:00/21:00 吗? UTC 比 CST 早 6 小时?
  • 您的问题似乎要求从 UTC 转换为“美国/芝加哥”时区。如果这不正确,请更新它以更具体。例如,预期的输出时区是 -06。

标签: date datetime dataweave anypoint-studio


【解决方案1】:

好消息是它记录在这里https://docs.mulesoft.com/dataweave/2.3/dataweave-cookbook-change-time-zone

此示例代码将时区分配给原始日期,然后将其转换为 UTC

var arrivedAt = "2021-01-20T15:00:00"
var timezone = "America/Chicago"
var dateWithTimezone = (arrivedAt as LocalDateTime) ++ "America/Chicago"
// dateWithTimezone = "2021-01-20T15:00:00-06:00"
var dateOnUTC = dateWithTimezone >> "UTC"
// dateOnUTC = "2021-01-20T21:00:00Z"
--- 
dateOnUTC as String { format: "yyyy-MM-dd'T'HH:mm:ssXXX"}

注意:我不确定问题的预期值是否正确,或者示例日期是否错误。

【讨论】:

  • arrivedAt 是当地时间(美国/芝加哥)。
  • 好的,所以 arrivedAt 是一个 LocalDateTime(意味着它没有时区)。要将其转换为日期时间,您需要添加正确的时区,在本例中为 -06:00。这应该是你的用例。 2021-01-20T21:00:00-06:00 表示芝加哥时间是晚上 9 点。 2021-01-20T21:00:00Z 是 UTC,表示芝加哥时间是下午 5 点。
  • 抱歉,2021-01-20T21:00:00Z 是 UTC(采用 ISO 格式),表示芝加哥时间是下午 3 点。
【解决方案2】:

您似乎使用了不正确的数据类型并尝试将日期转换为字符串。这是非常不建议的。错误可能是因为 Date 既没有时间也没有时区。

另一种方法是将日期时间视为 DateTime,以便能够使用时区功能:

%dw 2.0
output application/json
var arrivedAt = "2021-01-20T15:00:00"
var timezone = "America/Chicago"

var finalDateTime = (arrivedAt as DateTime >> timezone ) as String {format: "yyyy-MM-dd'T'HH:mm:ssZ"}
---
finalDateTime

输出

"2021-01-20T09:00:00-0600"

实际上,正确的小时数似乎是 9 而不是您预期的结果中的 21。也许您以相反的方式进行了时区转换?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多