You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Azure Data Factory输出文件名配置新西兰时间的技术咨询

解决ADF输出文件名包含新西兰时区时间的问题

我来帮你搞定这个需求——要在ADF生成的文件名里用新西兰时区时间,而不是默认的UTC,关键在于正确转换时区,还要考虑夏令时的自动处理,别手动加小时踩坑!

核心思路

新西兰时区会随夏令时切换(非夏令时UTC+12,夏令时UTC+13),手动用addhours固定加12或13会导致时间错误。ADF的convertFromUtc函数支持指定时区ID,能自动适配夏令时,是更可靠的方案。

具体配置修改

你需要更新partitionedBy里的value表达式,把UTC时间(比如SliceStart)转换为新西兰时区的格式化时间:

  1. 先用convertFromUtc将UTC时间转换为新西兰时区的DateTime对象,时区ID用New Zealand Standard Time(ADF支持Windows时区标识符)
  2. 再用formatDateTime把转换后的时间格式化成你需要的字符串(比如yyyyMMddHHmm,可根据需求调整格式)

替换后的完整typeProperties配置示例:

"typeProperties": {
    "fileName": "MasterFile-{fileDateNameVariable}.csv",
    "folderPath": "something",
    "format": {
        "type": "TextFormat",
        "columnDelimiter": ",",
        "nullValue": "",
        "firstRowAsHeader": true
    },
    "partitionedBy": [
        {
            "name": "fileDateNameVariable",
            "value": {
                "type": "Expression",
                "value": "@formatDateTime(convertFromUtc(pipeline().parameters.SliceStart, 'New Zealand Standard Time'), 'yyyyMMddHHmm')"
            }
        }
    ]
}

注意事项

  • 如果你用的是管道运行时间而非切片时间,把pipeline().parameters.SliceStart换成pipeline().RunTimeStart即可
  • 时间格式可以按需调整,比如yyyy-MM-dd_HH-mm-ss这种带分隔符的格式,只要符合formatDateTime的格式规则就行
  • New Zealand Standard Time会自动处理夏令时切换,不用你手动调整小时数,避免了季节变换时的时间错误

内容的提问来源于stack exchange,提问作者Ed Baker

火山引擎 最新活动