Установка часового пояса по умолчанию для DateTimes - PullRequest
5 голосов
/ 22 февраля 2011

У меня есть приложение на C #, которое будет работать в другом часовом поясе, чем я его разрабатываю.Он использует данные на основе времени, выполняет расчеты и принимает решения на основе данных на основе времени.Я хочу проверить использование реальных данных, поэтому мне было интересно, как я могу установить часовой пояс или что-то подобное в приложении, как если бы я находился в другом часовом поясе, и все переменные типа DateTime будут использовать это время по умолчанию?

Ответы [ 4 ]

6 голосов
/ 22 февраля 2011

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

2 голосов
/ 22 февраля 2011

DateTime имеет только три «режима»: DateTimeKind.Utc, DateTimeKind.Unspecified и DateTimeKind.Local.Он не делает расчеты на основе часового пояса.Это никак не компенсирует это.Есть DateTimeOffset, который может вам помочь (начиная с .NET 2.0 SP2)

1 голос
/ 22 февраля 2011

Доступен ли класс DateTimeOffset ? (это не когда вы используете компактный каркас). Судя по его API, он, кажется, очень хорошо отвечает вашим требованиям.

0 голосов
/ 22 февраля 2011

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

...