Kendo UI 将 UTC 显示为 AEST / AEDT

Kendo UI display UTC to AEST / AEDT

我有一个 Kendo UI 网格,它通过 AJAX 调用从 API 获取数据。 它有一个日期列,日期来自后端,格式为 "2022-03-08T19:02:00".

这是我正在解析日期的网格列之一:

{
                        field: "createdDate",
                        title: "Created Date",
                        template:"<div class='createdDateTemplate'>#= kendo.toString(kendo.parseDate(createdDate)) #</div>",
                        width: 150
                    }

我想用 AEST 或 AEDT 显示此日期,该日期一直在跟踪。这可能来自模板本身吗?

编辑:

我知道 Kendo 会自动以本地格式呈现日期时间,对我来说是这样的:

GMT+1000(澳大利亚东部标准时间)

但是这个时间加10可以显示吗?

编辑:我正在尝试这个 template:"<div class='createdDateTemplate'>#= kendo.toString(kendo.timezone.convert(kendo.parseDate(createdDate), 'Etc/UTC', 'Etc/GMT+10'), 'dd/MM/yyyy hh:mm tt') #</div>", 但我收到此错误: Cannot read properties of null (reading 'getFullYear')

是的,您可以随心所欲地显示日期。阅读 Kendo 日期解析文档。我建议 back-end 以 ISO 格式发送它(例如 yyyy-MM-ddTHH:mm:ss)。所以在 front-end 上,你可以只做 parseDate 而不需要额外的参数。也许根据浏览器的语言设置,它将以 AEST 或 AEDT 格式显示。如果没有,那么你可以在日期toString

如果您将 zzz 添加到 date 的末尾,

Kendo 会自动将日期转换为用户的本地时间,例如 yyyy-MM-ddTHH:mm:sszzz。 还有一件事,您说您的日期是 UTC,但最后没有 Z(零 utc 偏移量)。 Kendo 没有它就不会添加偏移量,所以我建议添加它。 也许你可以尝试这样的事情:

#= kendo.toString(kendo.parseDate(modifiedDate+'Z','yyyy-MM-ddTHH:mm:sszzz'), 'dd/MM/yyyy hh:mm tt')#