【问题标题】:.NET Core 2.2 Different time zones in local and Docker.NET Core 2.2 本地和 Docker 中的不同时区
【发布时间】:2019-04-25 10:47:47
【问题描述】:

我在 Windows 机器上运行 .NET Core 2.2 应用程序,在我处理的代码中某处 TimeZoneInfo 因为我需要转换为西班牙时间。

我在系统中列出了可用的时区信息并得到了一堆,我感兴趣的是“Romance Standard Time”。当我在 Docker 容器上部署到生产环境时,我发现我遇到了一个异常,因为没有找到那个时区。列出容器中可用的时区,我得到了“Europe/Madrid”作为我需要的时区。我的问题是,是不是因为我有一个 Windows 机器并且以某种方式安装/配置了“旧”或“不同”时区?有没有办法拥有相同的时区集?

作为参考,我正在使用的 Docker 映像:

FROM microsoft/dotnet:2.2-aspnetcore-runtime

谢谢

【问题讨论】:

    标签: c# docker asp.net-core .net-core


    【解决方案1】:

    这与底层操作系统有关。 Windows 与 Linux 一样具有另一个时区概念。 Europe/MadridIANA 时区名称。 我建议使用相同的底层操作系统或使用TimeZoneConverter 转换时区名称。

    【讨论】:

    • 我还建议将时区放入配置参数中,这样您就可以在部署时使用与本地不同的参数。
    • 谢谢! TimeZoneCoverter 解决了我的问题。很棒的包裹。感谢您的快速回复!
    猜你喜欢
    • 2020-02-04
    • 2019-07-01
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多