Нещодавно написав проєкт .NET Core, який був розгорнутий на CentOS і запущений на Docker, і виявив, що DateTime.Now отримує час, що не відповідає Windows (заплановане завдання, із затримкою на 8 годин), а локальний час був правильно отриманий у Windows, тоді як час, отриманий у середовищі Docker Linxu CentOS, був на 8 годин меншим. Перевірте локальний час за допомогою команди Linxu, місцевий час правильний, але .net core все одно працює на 8 годин менше ніж 8 годин у Docker. Припускаючи, що це може бути проблема часового поясу, я знайшов бібліотеку NodaTime, щоб отримати час уніфікованого часового поясу, який збігається з часом, отриманим у Docker-середовищі Linxu CentOS.
Встановлення NuGet:
Метод розширення пакета:
Час, отриманий у програмі, можна підтримувати такими методами для підтримки однорідності між Windows і Linux:
Також додається інструкціал про час налаштування контейнера:
(Кінець)
|