如何将Azure Blob Storage的List of Files LastModified返回的UTC时间转换为非UTC格式
问题解答
完全可以基于List of Files LastModified的返回结果完成时间转换,该字段返回的是标准ISO 8601格式的UTC时间戳,只要你上传文件后没有修改、覆盖对应Blob,这个值就是准确的文件实际上传时间,和12小时后的邮件发送时间没有关联。
常用场景转换示例
- Python 实现(转换为UTC+8中国标准时间为例)
from datetime import datetime import pytz # 接口返回的LastModified字段值 utc_time_str = "2021-09-22T15:15:55Z" utc_time = datetime.fromisoformat(utc_time_str.replace("Z", "+00:00")) # 时区转换 cn_time = utc_time.astimezone(pytz.timezone("Asia/Shanghai")) # 自定义输出格式 print(cn_time.strftime("%Y-%m-%d %H:%M:%S"))
- PowerShell 实现
$utcTimeStr = "2021-09-22T15:15:55Z" $utcTime = [DateTime]::Parse($utcTimeStr, $null, [System.Globalization.DateTimeStyles]::AdjustToUniversal) # 转换为中国标准时间 $cnTime = [TimeZoneInfo]::ConvertTimeBySystemTimeZoneId($utcTime, "China Standard Time") # 格式化输出 $cnTime.ToString("yyyy-MM-dd HH:mm:ss")
- Power Automate/Logic Apps 低代码实现
直接调用内置convertTimeZone函数即可,示例表达式:convertTimeZone('2021-09-22T15:15:55Z', 'UTC', 'China Standard Time', 'yyyy-MM-dd HH:mm:ss')
注意事项
- 不要手动加减时差完成转换,优先使用对应开发工具、语言的内置时区转换能力,避免夏令时、时区规则调整导致的时间偏差。
- 如果你后续有修改Blob内容、元数据的需求,会触发
LastModified字段更新,你可以在文件上传时额外给Blob新增UploadTime自定义元数据字段,写入上传时的时间戳,后续直接读取该字段即可,不受后续操作影响。
内容的提问来源于stack exchange,提问作者CXLSX
相关产品推荐
相关产品推荐

