自定义或格式化流中的日期和时间值

本文提供了在 Power Automate 流中自定义或格式化日期和时间值的步骤。

在 Power Automate 流中处理日期和时间值时,您可能会发现日期和时间格式与您预期的不同,或者您可能想要自定义输出的格式。 为此,您可以将格式字符串传递给 formatDateTime 函数。

格式化日期和时间

Power Automate 中的 formatDateTime() 函数使您能够以各种显示格式操作和格式化日期和时间值。 同时还提供一种跨不同时区处理数据和时间的简单方法。

formatDateTime() 函数有两个参数:

  • 时间戳:时间戳是需要格式化的日期和时间值。

    可以是手动字符串或动态内容。 手动输入时,时间戳应遵循 ISO 8601 格式 ("yyyy-MM-ddTHH:mm:ssZ")。

  • 格式字符串:格式字符串指定日期和时间的输出格式。

    formatDateTime() 函数的格式字符串参数可以是标准格式字符串或自定义格式字符串。

标准格式字符串

标准格式字符串使用单个字符(例如 d、g 或 G)作为格式说明符。

示例

  • 格式字符串 g 对应于常规日期/时间模式(短时间):

    formatDateTime('2009-06-15T13:45:30', 'g') // 返回格式 6/15/2009 1:45 PM

  • 格式字符串 D 对应于长日期模式:

    formatDateTime('2009-06-15T13:45:30', 'D') // 返回格式 Monday, June 15, 2009

有关使用标准日期和时间格式字符串的更多信息和示例,请访问标准日期和时间格式字符串

自定义格式字符串

自定义格式字符串是具有多个字符的任何字符串(例如,M/dd/yyyy h:mm tt),可以控制日期和时间值的月、日、年、小时、秒等的可见性、定位和精度。

示例

  • 格式字符串 M/dd/yyyy h:mm tt 表示与标准格式字符串 g 相同的模式,如标准格式字符串中所述:

    formatDateTime('2009-06-15T13:45:30', 'M/dd/yyyy h:mm tt') // 返回格式 6/15/2009 1:45 PM

  • 格式字符串 HH:mm:ss tt 返回 24 小时格式:

    formatDateTime('2009-06-15T13:45:30', 'M/dd/yyyy HH:mm:ss tt')// 返回格式 6/15/2009 13:45:30 PM

  • 格式字符串 hh:mm:ss tt 返回 12 小时格式:

    formatDateTime('2009-06-15T13:45:30', 'yyyy/MM/dd hh:mm:ss tt') // 返回格式 2009/06/15 1:45:30 PM

  • utcNow() 函数用作时间戳以自动获取 UTC 格式的当前日期和时间,以及格式字符串 dd-MM-yyyy 以显示日期和时间:

    formatDateTime(utcNow(), 'MMMM dd, yyyy, HH:mm') // 返回当前日期时间,格式为 June 15, 2009, 16:50

  • utcNow() 函数用作时间戳以自动获取 UTC 格式的当前日期和时间,以及格式字符串 dd-MM-yyyy 以显示日期,但没有时间:

    formatDateTime(utcNow(), 'dd-MM-yyyy') // 返回当前日期,格式为 15-06-2009

有关使用自定义日期和时间格式字符串的更多信息和示例,请访问自定义日期和时间格式字符串

在流中使用

要在流中使用日期和时间值,请按照下列步骤操作。

  1. 在流中,选择要输入格式化日期和时间值的输入字段。

  2. 转到添加动态内容并选择表达式选项卡以打开表达式编辑器。

  3. 键入 formatDateTime()

    或者,在日期和时间函数下查找。

  4. 提供要格式化的值,用单引号括起来。

    动态内容可以使用,但不应该用单引号括起来。

  5. 提供格式字符串,用单引号括起来。

  6. 完整的表达式应该如下例所示:

    • formatDateTime('<your-value>', 'dd/MM/yyyy hh:mm tt')
    • formatDateTime('<dynamic-value>', 'dd/MM/yyyy hh:mm tt')

    “添加动态内容”链接和“表达式”选项卡的屏幕截图。

  7. 选择确定

动态内容示例

动态内容是由流图中的触发器和操作产生的变量。 它们使用户能够从前面的步骤中选择字段引用并编写表达式。

此示例通过一个简单的流演示如何将 formatDateTime() 函数用于动态内容。 本例中使用的触发器是需要用户输入的手动触发流。

  1. 登录到 Power Automate

  2. 设置流的触发器。 本示例使用日期作为输入。

    1. 在左侧导航窗格中,选择创建>即时云端流

    2. 流名称字段中输入流的名称。

    3. 选择如何触发此流列表中,选择手动触发流

    4. 选择创建

    5. 选择手动触发流卡。

    6. 参数选项卡上,选择+添加输入日期>日期

    7. 在右侧的字段中,输入 2023-10-22

      “参数”选项卡中日期格式的屏幕截图。

  3. 添加发送电子邮件 (v2) 操作。

    1. 手动触发流卡片下方,选择加号 (+) >添加操作

    2. 搜索字段中,开始键入发送电子邮件 (v2),看到后从列表中将其选中。

    3. 选择电子邮件中的正文字段,然后选择 fx(插入表达式)。

    4. 选择动态内容

      这里显示的动态内容与触发器相关。 它将触发器和需要采取的操作联系在一起。

    5. 动态内容上方的字段中,开始键入格式日期时间,并在下拉菜单出现时将其选中。

    6. 向下滚动动态内容列表并选择触发日期。 如果其没有出现,请选择查看更多

      该变量的动态内容来自触发器中的日期字段。

    7. 根据所需的日期输出格式提供格式字符串(用单引号括起来)。 在本例中,使用了 MM/dd/yyyy 格式。

      完整的表达式如下所示:

      formatDateTime(triggerBody()?['date'], 'MM/dd/yyyy')

      使用动态内容的 formatDatTime 函数的屏幕截图。

    8. 选择添加

  4. 参数选项卡的收件人字段中插入一封电子邮件,并在主题字段中插入一个主题。

  5. 选择保存

  6. 运行流后,收到的电子邮件以指定的月/日/年格式显示日期。

转换时区的示例

Power Automate 默认使用协调世界时 (UTC)。 若要处理其他时区的日期和时间值,可以将 formatDateTimeconvertTimeZone 函数结合使用。

例如,要以东部标准时间显示当前时间,可以使用以下语法:

formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time'), 'yyyy-MM-dd HH:mm:ss') // 返回根据东部标准时间调整的日期时间

另请参见

有关日期和时间函数的更多信息,请选择以下文章。