如何在Power Automate中修改日期格式(Outlook邮件导出至Excel场景)
解决Power Automate中日期时间格式转换为dd-mmm-yyyy at hh:mm:ss IST的问题
要把你提取的UTC格式日期(比如27-07-2022T12:40:11+00:00)转换成目标格式,你需要结合Power Automate的时区转换函数和格式化函数来实现,具体步骤如下:
核心表达式说明
直接使用下面的表达式替换你原来映射到Excel日期列的动态内容即可:
formatDateTime(convertFromUtc(triggerBody()?['ReceivedTime'], 'India Standard Time'), 'dd-MMM-yyyy \a\t hh:mm:ss IST')
或者用单引号包裹字面量的写法(效果完全一致):
formatDateTime(convertFromUtc(triggerBody()?['ReceivedTime'], 'India Standard Time'), 'dd-MMM-yyyy \'at\' hh:mm:ss IST')
表达式拆解
convertFromUtc(..., 'India Standard Time'):把原始的UTC时间转换为印度标准时间(IST,UTC+5:30),确保时间是当地时区的正确值formatDateTime(..., '<格式字符串>'):将转换后的时间格式化为你需要的样式:dd:两位数的日期(比如27)MMM:月份的英文缩写(比如Jul)yyyy:四位数的年份(比如2022)\a\t(或\'at\'):转义"at"这个字面量(因为a是默认的AM/PM格式符,必须转义才能显示成普通文本)hh:mm:ss:12小时制的时分秒(如果需要24小时制,把hh改成HH即可)IST:直接追加时区标识
操作步骤
- 打开你的Power Automate流程,找到写入Excel的步骤
- 点击原来映射日期的输入框,切换到表达式模式(点击输入框上方的
fx按钮) - 粘贴上面的表达式,把
triggerBody()?['ReceivedTime']替换成你实际提取的邮件日期字段(比如你的流程里可能是items('Apply_to_each')?['ReceivedTime'],根据你的流程循环结构调整) - 保存流程并测试,此时Excel里的日期就会显示为
27-Jul-2022 at 18:10:11 IST这样的格式
额外优化(处理空值)
如果存在邮件日期为空的情况,可以加上空值判断避免流程报错:
if(empty(triggerBody()?['ReceivedTime']), '', formatDateTime(convertFromUtc(triggerBody()?['ReceivedTime'], 'India Standard Time'), 'dd-MMM-yyyy \a\t hh:mm:ss IST'))
内容的提问来源于stack exchange,提问作者Satish
相关产品推荐
相关产品推荐

