【发布时间】:2019-04-07 11:56:53
【问题描述】:
我想在我的 ASP.NET Core 2.2 应用程序中默认使用德语日期格式。在我的使用德语/布局的 Win10 机器上它可以工作,所以我认为必须在我的 Dockerfile 中设置时区。根据Alpine wiki,我这样做了:
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine3.9 AS build-env
ENV TZ=Europe/Berlin
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
RUN apk add tzdata \
&& cp /usr/share/zoneinfo/${TZ} /etc/localtime \
&& echo "${TZ}" > /etc/timezone
COPY . ./
RUN dotnet publish -c Production -o dist
ENTRYPOINT ["dotnet", "./dist/MyApp.dll"]
根据date 命令,这有效:
/app # date
Sun Apr 7 13:50:42 CEST 2019
/app # date -u
Sun Apr 7 11:50:40 UTC 2019
但是我的模型中有一个来自数据库的 DateTime 对象
<td>@article.PublishedTime.ToString("g")</td>
我得到4/7/19 12:16 AM,我的德国Win10机器显示07.04.2019 00:16。为什么这不起作用?由于 ASP.NET Core 使用系统时区,它现在应该使用 linux 中设置的 24 小时制时间格式。
【问题讨论】:
标签: c# docker asp.net-core localization timezone