Наскоро написах проект за .NET ядро, разположен в CentOS и работен на docker, и установих, че DateTime.Now получава време, несъвместимо с Windows (планирана задача, с 8 часа закъснение), а локалното време е било правилно получено в Windows, докато времето, получено в Docker средата на Linxu CentOS, е с 8 часа по-малко. Провери локалното време с командата Linxu, местното време е правилно, но .net ядрото все още е с 8 часа по-малко от 8 часа, когато работи в Docker. Предполагайки, че може да е проблем с часовата зона, намерих библиотека на NodaTime, за да получа времето на унифицираната часова зона, което е същото като времето, получено в Docker средата на Linxu CentOS.
Инсталация на NUGET:
Метод за разширяване на пакета:
Времето, което се получава в програмата, може да се поддържа по следните методи за поддържане на еднородност между Windows и Linux:
Също така е приложен урок за времето за настройка на контейнера:
(Край)
|