#c# #.net #windows
#c# #.net #Windows
Вопрос:
Привет, я разрабатываю приложение Windows form (C #), которое будет использоваться в различных географических точках и требует 2 параметра: время работы от часа и время работы от часа. Это выглядит как
business from hr: 08:00
business to hr: 17:00
Мне нужно выполнить проверку по этим двум временам, чтобы проверить, соответствует ли текущее местное время рабочим часам или нет. Чтобы получить локальный текущий час, на какое время я должен ссылаться? Это DateTime.Now
или Datetime.UtcNow
? Пожалуйста, сообщите.
Комментарии:
1. Как следует из названия, DateTime. UTC — это время UTC, а не местное время (за исключением того, что местное время на самом деле является UTC).
2. Это должно зависеть, т. Е. Будет ли то же хранилище использоваться кем-то в другом часовом поясе? если это так, вы должны использовать время UTC, но также сохранить часовой пояс, чтобы помочь другому пользователю часового пояса точно использовать данные посредством преобразований, в противном случае вы можете использовать localtime
3. Вам нужно выполнить проверку диапазона рабочих часов на стороне сервера (базы данных) или на стороне клиента (т. Е. в самом приложении Windows form)?
4. На самом деле все зависит, во многих местах, где я работал, существует общее соглашение о часовом поясе (UTC), но тогда вам нужно поработать с разницей во времени. Если вы всегда хотите локальный, тогда используйте DateTime.Now. Я чувствую, что этот вопрос откроет банку с червями, на которые нелегко ответить.
5. Рекомендуется хранить Datetime в UTC вместе с часовым поясом, особенно в веб-приложениях, поскольку UTC является объективным, а localtime — субъективным.
Ответ №1:
В приложении WinForms местное время является DateTime.Now
.
Смотрите ссылку на MSDN.