Учитывая вашу пользовательскую информацию, похоже, что вы находитесь в индийском часовом поясе - зона Нью-Дели на 5 часов и тридцать минут опережает UTC .«Z» в конце строки даты / времени указывает на UTC, что имеет смысл: 6:28 UTC - это 11:58 в вашем часовом поясе.
Вы можете взять локальный DateTime
и преобразовать егов UTC, используя ToUniversalTime
- но если вы хотите получить текущее время, вы можете просто использовать DateTime.UtcNow
для начала.
Как только вы получите DateTime
в UTC, эта строка формата будетотформатируйте его таким же образом:
yyyy-MM-ddTHH:mm:ss.fffffff00K
Это очень похоже на формат туда-обратно, только с двумя дополнительными нулями в конце.Они жестко запрограммированы в 0, так как DateTime
не имеет точности с точностью до одной десятой микросекунды, в то время как ваша строка образца имеет значение до наносекунды.
Например:
DateTime now = DateTime.UtcNow;
string s = now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff00K",
CultureInfo.InvariantCulture);
создает что-то вроде этого:
2010-06-19T13:57:15.885578200Z