Разница между LocalTime и UniversalTime c #

На недавнем собеседовании о C # кто-то задал мне следующий вопрос:

  • В чем разница между LocalTime и UniversalTime в C # и когда их использовать?

После проверки документации я нашел следующее определение LocalTime:

Местное время равно времени всемирного координированного времени (UTC) плюс смещение UTC.

И следующий для UniversalTime:

Универсальное скоординированное время (UTC) равно местному времени за вычетом смещения UTC.

Итак, на мой взгляд, UniversalTime - это противоположность LocalTime, но они оба делают одно и то же и дают одинаковые результаты.

Итак, когда я должен использовать каждый из них? Есть ли реальная разница?


person Flame_Phoenix    schedule 30.01.2015    source источник
comment
Трудно ответить на этот вопрос, не зная, как много вы уже знаете о часовых поясах. Также было бы полезно узнать, где вы живете, чтобы я мог привести вам конкретные примеры, которые применимы к вам.   -  person Jon Skeet    schedule 30.01.2015
comment
Это уже в вашем вопросе. UTC - это шкала времени, на основе которой производятся другие часовые пояса. Итак, если учесть лондонское время, это время UTC. А ваше местное время - лондонское время + или - смещение. Итак, если вы опережаете лондонское время, то это будет время UTC +. Если ты отстал, то -.   -  person Amit    schedule 30.01.2015


Ответы (1)


UTC - это время в произвольно выбранной области (Гринвич), скорректированное на несколько секунд из-за нарушений орбиты Земли.

Местное время - это время в определенной точке на Земле. Например, если время UTC равно 0:00, и вы находитесь в Каире, вы увидите 2:00, потому что часовой пояс в Каире имеет смещение на 2 часа вперед (обычно обозначается «UTC + 2»).

Для этого примера:

Местное время равно времени всемирного координированного времени (UTC) плюс смещение UTC.

Местное время будет 0:00 + 2ч = 2:00.

Универсальное скоординированное время (UTC) равно местному времени за вычетом смещения UTC.

UTC будет 2:00 - 2h = 0:00.

В контексте вопроса интервьюер, вероятно, искал ответ, что вы всегда будете хранить время на стороне сервера в формате UTC и конвертировать его только в местное время пользователя при отображении для пользователей.

Это, кстати, не относится к C #. Если вас интересуют более подробные сведения, действительно хорошее объяснение есть в wikipedia.

person ya23    schedule 30.01.2015