DGKumar Ответов: 2

Как получить формат UTC в C#


Я пытался получить формат UTC datetime в c# и пытался использовать приведенный ниже код, но не смог получить правильное значение.

строка ddd = "2018-02-28T18:10:13+08:00";
DateTime dt = новый DateTime();
dt = преобразовать.ToDateTime(ddd);
/в /var типа datetime = новый объект datetime(ДТ, значение datetimekind.Местный);
var text = dt.ToString("o");
Приставка.WriteLine(текст);
//2018-02-28T15:40:13.0000000+05:30

Получение этого значения : //2018-02-28T15:40:13.0000000+05:30
нужно удалить 0000000 из даты.

Что я уже пробовал:

строка ddd = "2018-02-28T18:10:13+08:00";
DateTime dt = новый DateTime();
dt = преобразовать.ToDateTime(ddd);
/в /var типа datetime = новый объект datetime(ДТ, значение datetimekind.Местный);
var text = dt.ToString("o");
Приставка.WriteLine(текст);
//2018-02-28T15:40:13.0000000+05:30
Приставка.ReadKey();

Richard Deeming

Когда вы имеете дело со значениями, имеющими смещение UTC, вы должны использовать тип datetimeoffset[^] вместо DateTime.

Или, если вам нужен правильный контроль, используйте NodaTime[^].

2 Ответов

Рейтинг:
2

dkamble 10358990

значение datetime.UtcNow.ToUniversalTime();


Member 12058183

Спасибо

Рейтинг:
0

OriginalGriff

Вы не можете "удалить 0000000 из даты" - значения DateTime так не работают, они хранятся как количество тиков с определенного момента времени, поэтому вы не можете сбросить тики!

Но вы можете отформатировать вывод:

string text = dt.ToString("s");
Даст вам формат UTC:
2018-02-18T12:10:13
UTC не имеет часового пояса, так что это не будет "+05:30"
Но это добавит его:
string text = dt.ToString("yyyy-MM-ddTHH:mm:ssK");