【问题标题】:Define correctly and automatized eastern time for "Last Refreshed On" visual in Power BI在 Power BI 中为“上次刷新时间”视觉对象正确和自动定义东部时间
【发布时间】:2025-12-13 15:45:02
【问题描述】:

我有一个已发布的仪表板,每 30 分钟刷新一次,其中我有一张卡片,当 Power BI 服务刷新仪表板时,我将“上次刷新时间”日期时间与东部时间格式放在了一起,我想避免根据每年的夏令时手动更改时间(UTC 之后)。

目前我根据下一个 M 脚本定义了这个 EST 时间计算:

let
Source = #table(type table[Date Last Refreshed=datetime],{{DateTimeZone.UtcNow()}}),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date Last Refreshed", type datetime}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom Last Refresh", each [Date Last Refreshed]+ #duration(0,-4,0,0)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Date Last Refreshed"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom Last Refresh", "Date Last Refreshed"}})

in
#"Renamed Columns"

【问题讨论】:

    标签: datetime powerbi data-analysis powerquery m


    【解决方案1】:

    我用它来调整夏令时(我也在东方):

    let
    ESTAdjustment = (InputDateTimeAsUTC as datetimezone, UTCAdjustmentAmount as number) =>
    let
    CurrentYear = Date.Year( DateTimeZone.SwitchZone( InputDateTimeAsUTC, UTCAdjustmentAmount ) ),
    DaylightSavingsStart = Date.StartOfWeek( #datetimezone( CurrentYear, 3, 14, 0, 0, 0, UTCAdjustmentAmount, 0 ), Day.Sunday ) + #duration( 0, 2, 0, 0 ),
    DaylightSavingsEnd = Date.StartOfWeek( #datetimezone( CurrentYear, 11, 7, 0, 0, 0, UTCAdjustmentAmount + 1, 0 ), Day.Sunday ) + #duration( 0, 2, 0, 0 ),
    AdjustForDaylightSavingsTime = if InputDateTimeAsUTC >= DaylightSavingsStart and InputDateTimeAsUTC < DaylightSavingsEnd then UTCAdjustmentAmount + 1 else UTCAdjustmentAmount,
    AdjustToEST = DateTimeZone.RemoveZone(InputDateTimeAsUTC) + #duration(0, AdjustForDaylightSavingsTime, 0, 0)
    in
    AdjustToEST
    in
    ESTAdjustment
    

    【讨论】: