首页 > 解决方案 > 如何在 Jekyll 中将时间转换为 UTC?

问题描述

我有以下{{ site.data.wedding.Ceremony.Start | date: "%Y%m%dT%H:%M:%S%:z" }},目前输出:20200101T16:00:00+02:00

我想将该时间转换为 UTC,而不管site.data.wedding.Ceremony.Start.

内容wedding.json

{
    "ShortName": "Bride&Groom",
    "Bride": "Bride",
    "Groom": "Groom",
    "Ceremony": {
        "Start": "2020-01-01T16:00:00+02:00",
        "End": "2020-01-01T18:00:00+02:00"
    },
    "Reception": {
        "Start": "2020-01-01T18:30:00+02:00",
        "End": "2020-01-02T02:00:00+02:00"
    }
}

标签: jekyll

解决方案


目前,没有可以将日期转换为 UTC 的 Liquid 过滤器。但是,除非您通过 GitHub Pages 构建您的站点,否则您可以使用插件来定义过滤器。

只需将以下代码保存到_plugins/utc_filter.rb

module Jekyll
  module UTCFilter
    def to_utc(date)
      time(date).utc
    end
  end
end

Liquid::Template.register_filter(Jekyll::UTCFilter)

然后在您的模板中使用上述过滤器:

{{ site.data.wedding.Ceremony.Start | to_utc | date: "%Y%m%dT%H:%M:%S%:z" }}

您可以简单地在上面的模块中添加额外的方法来定义更多的过滤器。


推荐阅读