为什么 DotLiquid 或 Azure Logic Apps 会自动转换我的日期字段?

Why is DotLiquid or Azure Logic Apps automatically converting my date field?

我有一个包含日期字段的流动模板,我根本没有使用任何过滤器,但它正在从 2020-04-11T22:02:11Z UTC 转换为 4/11/2020 10:02:11 PM。这是 DotLiquid 或 Azure 逻辑应用程序的预期行为吗?我怎样才能阻止它这样做?

我以前遇到过同样的问题,即使是字符串,liquid 也会自动将日期时间从2020-04-11T22:02:11Z 转换为4/11/2020 10:02:11 PM。作为解决方法,我们可以使用日期格式将其转换为原始日期时间。

例如,我有一个 json 如下:

{
    "datetime": "2020-04-11T22:02:11Z"
}

我们可以这样使用液体贴图:

{
    "datetime":"{{content.datetime | Date: "yyyy-MM-ddTHH:mm:ssZ"}}"
}

之后,我们可以得到原始日期格式为2020-04-11T22:02:11Z

希望对你有帮助~

如果您在本地 运行 DotLiquid 并使用 Newtonsoft JSON 反序列化器,那么您可以告诉它不要解析 date-time 字符串并将它们保留为字符串:

JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
    DateParseHandling = DateParseHandling.None
};

Azure Logic Apps 工作流引擎似乎反映了这种行为,因为我的 date-time 字符串没有改变。