如何在Azure Logic Apps工作流中转'dd.MM.yyyy HH:mm:ss'为datetime?是否需Azure Functions?
在Azure Logic Apps中转换'dd.MM.yyyy HH:mm:ss'字符串为datetime的方法
嘿,刚好处理过类似的需求,完全不需要只能依赖Azure Functions的DateTime.ParseExact(),Logic Apps本身就有内置的方式轻松搞定这个转换,给你分享几种实用方法:
方法1:使用内置的parseDateTime表达式函数
这是最直接的方式,parseDateTime函数支持指定自定义日期格式,完美适配你的场景。
举个实际例子,假设你要转换的字符串是'15.08.2024 14:30:00',对应的表达式写法是:
parseDateTime('15.08.2024 14:30:00', 'dd.MM.yyyy HH:mm:ss')
如果你的日期字符串来自工作流的触发器或者其他动作的输出,比如触发器body里的dateString字段,就改成:
parseDateTime(triggerBody()?['dateString'], 'dd.MM.yyyy HH:mm:ss')
这个表达式会直接返回标准的datetime类型,后续可以在工作流里直接用于日期比较、格式转换等操作。
如果需要指定时区(比如你的输入时间是本地时区,要转成UTC),还可以加上第三个参数:
parseDateTime('15.08.2024 14:30:00', 'dd.MM.yyyy HH:mm:ss', 'Europe/Paris')
方法2:容错处理用tryParseDateTime
如果担心输入字符串可能存在格式不匹配的情况(比如偶尔有少一位的日期),可以用tryParseDateTime函数,它不会让工作流失败,而是返回默认值或者null:
tryParseDateTime(triggerBody()?['dateString'], 'dd.MM.yyyy HH:mm:ss', 'UTC', '1900-01-01')
最后一个参数是格式不匹配时返回的默认datetime值,可以根据你的需求调整。
关于Azure Functions的补充
当然,如果你的场景有非常复杂的自定义日期处理逻辑(比如要同时兼容多种格式、做特殊的时区转换规则),Azure Functions确实是个可行的补充方案,但对于你这种固定格式的字符串转datetime,内置表达式完全够用,没必要额外部署函数增加复杂度。
内容的提问来源于stack exchange,提问作者reddto
相关产品推荐
相关产品推荐

