Dataweave 日期格式化为具有夏令时的 GMT 时区
Dataweave date formatting to GMT timezone with daylight saving
我正在尝试使用 GMT 时区进行日期格式化。但是夏季和冬季的偏移量是相同的。它适用于 CET 时区。想知道为什么它与 GMT 不同?
尝试了以下数据编织
期待中
"GMT":
"date-GMT-Winter": "2019-12-15T13:00:00+00:00",
"date-GMT-Summer": "2019-08-15T13:00:00+01:00"
但实际
"GMT":
"date-GMT-Winter": "2019-12-15T13:00:00Z",
"date-GMT-Summer": "2019-08-15T13:00:00Z"
output application/json
var CET_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "CET" as String {format: "xxx"}
var CET_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "CET" as String {format: "xxx"}
var GMT_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "GMT" as String {format: "xxx"}
var GMT_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "GMT" as String {format: "xxx"}
---
{
'date2': now(),
"timeZoneOffset-xxx" : now() as String {format: "xxx"},
'CET':
{
'date-CET-Winter': CET_timezone_winter,
'date-CET-Summer': CET_timezone_summer
},
'GMT':
{
'date-GMT-Winter': GMT_timezone_winter,
'date-GMT-Summer': GMT_timezone_summer
}
}
夏令时不适用于 GMT(或 UTC)
参见 https://www.timeanddate.com/time/gmt-utc-time.html
Neither UTC nor GMT ever change for Daylight Saving Time (DST). However, some of the countries that use GMT switch to different time zones during their DST period.
For example, the United Kingdom is not on GMT all year, it uses British Summer Time (BST), which is one hour ahead of GMT, during the summer months.
如果您想要获得 UK/London 一年中的时间(GMT 和 BST 表示夏令时),您可以使用以下 Dataweave(我添加了新字段用于比较)
output application/json
var CET_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "CET" as String {format: "xxx"}
var CET_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "CET" as String {format: "xxx"}
var GMT_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "GMT" as String {format: "xxx"}
var GMT_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "GMT" as String {format: "xxx"}
var london_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "Europe/London" as String {format: "xxx"}
var london_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "Europe/London" as String {format: "xxx"}
---
{
'date2': now(),
"timeZoneOffset-xxx" : now() as String {format: "xxx"},
'CET':
{
'date-CET-Winter': CET_timezone_winter,
'date-CET-Summer': CET_timezone_summer
},
'GMT':
{
'date-GMT-Winter': GMT_timezone_winter,
'date-GMT-Summer': GMT_timezone_summer
},
'London': {
'date-London-Winter': london_timezone_winter,
'data-London-Summer': london_timezone_summer
}
}
输出为JSON:
{
"date2": "2019-09-24T15:25:17.574Z",
"timeZoneOffset-xxx": "+00:00",
"CET": {
"date-CET-Winter": "2019-12-15T14:00:00+01:00",
"date-CET-Summer": "2019-08-15T15:00:00+02:00"
},
"GMT": {
"date-GMT-Winter": "2019-12-15T13:00:00Z",
"date-GMT-Summer": "2019-08-15T13:00:00Z"
},
"London": {
"date-London-Winter": "2019-12-15T13:00:00Z",
"data-London-Summer": "2019-08-15T14:00:00+01:00"
}
}
我正在尝试使用 GMT 时区进行日期格式化。但是夏季和冬季的偏移量是相同的。它适用于 CET 时区。想知道为什么它与 GMT 不同?
尝试了以下数据编织
期待中
"GMT":
"date-GMT-Winter": "2019-12-15T13:00:00+00:00",
"date-GMT-Summer": "2019-08-15T13:00:00+01:00"
但实际
"GMT":
"date-GMT-Winter": "2019-12-15T13:00:00Z",
"date-GMT-Summer": "2019-08-15T13:00:00Z"
output application/json
var CET_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "CET" as String {format: "xxx"}
var CET_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "CET" as String {format: "xxx"}
var GMT_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "GMT" as String {format: "xxx"}
var GMT_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "GMT" as String {format: "xxx"}
---
{
'date2': now(),
"timeZoneOffset-xxx" : now() as String {format: "xxx"},
'CET':
{
'date-CET-Winter': CET_timezone_winter,
'date-CET-Summer': CET_timezone_summer
},
'GMT':
{
'date-GMT-Winter': GMT_timezone_winter,
'date-GMT-Summer': GMT_timezone_summer
}
}
夏令时不适用于 GMT(或 UTC)
参见 https://www.timeanddate.com/time/gmt-utc-time.html
Neither UTC nor GMT ever change for Daylight Saving Time (DST). However, some of the countries that use GMT switch to different time zones during their DST period.
For example, the United Kingdom is not on GMT all year, it uses British Summer Time (BST), which is one hour ahead of GMT, during the summer months.
如果您想要获得 UK/London 一年中的时间(GMT 和 BST 表示夏令时),您可以使用以下 Dataweave(我添加了新字段用于比较)
output application/json
var CET_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "CET" as String {format: "xxx"}
var CET_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "CET" as String {format: "xxx"}
var GMT_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "GMT" as String {format: "xxx"}
var GMT_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "GMT" as String {format: "xxx"}
var london_timezone_winter = "2019-12-15T13:00:00" as DateTime >> "Europe/London" as String {format: "xxx"}
var london_timezone_summer = "2019-08-15T13:00:00" as DateTime >> "Europe/London" as String {format: "xxx"}
---
{
'date2': now(),
"timeZoneOffset-xxx" : now() as String {format: "xxx"},
'CET':
{
'date-CET-Winter': CET_timezone_winter,
'date-CET-Summer': CET_timezone_summer
},
'GMT':
{
'date-GMT-Winter': GMT_timezone_winter,
'date-GMT-Summer': GMT_timezone_summer
},
'London': {
'date-London-Winter': london_timezone_winter,
'data-London-Summer': london_timezone_summer
}
}
输出为JSON:
{
"date2": "2019-09-24T15:25:17.574Z",
"timeZoneOffset-xxx": "+00:00",
"CET": {
"date-CET-Winter": "2019-12-15T14:00:00+01:00",
"date-CET-Summer": "2019-08-15T15:00:00+02:00"
},
"GMT": {
"date-GMT-Winter": "2019-12-15T13:00:00Z",
"date-GMT-Summer": "2019-08-15T13:00:00Z"
},
"London": {
"date-London-Winter": "2019-12-15T13:00:00Z",
"data-London-Summer": "2019-08-15T14:00:00+01:00"
}
}