Удалить UtcOffset из DateTime.Now - PullRequest
       1

Удалить UtcOffset из DateTime.Now

4 голосов
/ 08 февраля 2012

Мне нужно значение DateTime.Now в формате туда и обратно без utcOffset.Исходя из этой статьи MSDN , если вы создаете новый экземпляр DateTime без UtcOffset, он создает нужный мне формат.

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
// Displays 2008-04-10T06:30:00.0000000   

но если я использую DateTime.Now, я получу смещение в строке:

DateTime.Now.ToString("o")
// Displays 2012-02-08T14:11:12.8378703-05:00   

Я мог бы просто использовать подстроку или заполнить экземпляр DateTime без него, но я былинтересно, есть ли способ удалить UtcOffset.

Ответы [ 3 ]

6 голосов
/ 08 февраля 2012

Смещение UTC (например, «-05: 00» или «Z») опускается, если DateTime.Kind не является ни Utc , ни Local .

Вы можете создать такое значение DateTime следующим образом:

DateTime.UtcNow.ToString("o");
// "2012-02-08T19:19:38.5767158Z"

new DateTime(DateTime.UtcNow.Ticks).ToString("o");
// "2012-02-08T19:19:38.5767158"

new DateTime(DateTime.Now.Ticks).ToString("o");
// "2012-02-08T14:19:38.5767158"
3 голосов
/ 08 февраля 2012

Если я понимаю, что вы хотите, вы можете использовать DateTime.UtcNow .

DateTime.Now.ToString("o")
DateTime.UtcNow.ToString("o")

Выходы:

2012-02-08T13:18:22.4459488-06:00
2012-02-08T19:18:22.4599488Z
0 голосов
/ 17 августа 2017

Я просто обнулил свой, используя

new DateTimeOffset(Date_Goes_Here, TimeSpan.Zero);
...