Я хочу использовать немецкое форматирование даты по умолчанию для моего приложения 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 использует системный часовой пояс, теперь он должен использовать 24-часовой формат времени, установленный в Linux.