Ada*_*dam 6 excel m powerquery powerbi
Power Query 中的列将 JavaScript 时区转换为英国格式:
= #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [Timestamp]/1000)
Run Code Online (Sandbox Code Playgroud)
但这会产生错误的输出(-1hr 差异),大概是由于 UTC / GMT+夏令时差异?
我尝试使用以下代码再次转换:
= DateTimeZone.ToLocal(#datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [Timestamp]/1000))
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
Expression.Error: We cannot convert the value #datetime(2019, 7, 11, 23, 11, 40) to type DateTimeZone.
Details:
Value=11/07/2019 23:11:40
Type=Type
Run Code Online (Sandbox Code Playgroud)
我该如何正确地做到这一点?
编辑:
Timestamp = Text.BetweenDelimiters([ReceivedTime], "(", ")"), type text
Run Code Online (Sandbox Code Playgroud)
其中[ReceivedTime]是以毫秒为单位的 JSON 日期,例如:/Date(1562886700000)/
可能有一种更明智的方法来转换 JSON 日期,而无需借助Text方法。
生成的解决方案应在 Power BI 报告中正确显示 - 报告应显示用户本地时区中的所有日期时间。
DateTimeZone.ToLocal接受一个datetimezone参数,但你只有一个datetime. 不同的函数DateTimeZone.From可以将 a 转换datetime为datetimezone,但它假设输入datetime位于本地区域,这会将其转换为相反的方向。
相反,您可以#datetimezone使用 UTC 时区调用构造函数,然后将其转换为您的本地时区:
= DateTimeZone.ToLocal(#datetimezone(1970, 1, 1, 0, 0, 0, 0, 0) + #duration(0, 0, 0, [Timestamp]/1000))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2230 次 |
| 最近记录: |