Преобразование метки времени в формат ISO 8601 C#

#c# #.net #date #timestamp

Вопрос:

У меня есть метка 2021-02-18T22:40:34.062 05:30 времени , как мне преобразовать ее в формат ISO 8601, аналогичный 2020-10-20T09:45:48.947Z ?

Редактировать:

Так вот что я пробовал:

 using System;
                    
public class Program
{
    public static void Main()
    {
        var s = "2021-02-18T22:40:34.062 05:30";
        var t = DateTime.Parse(s);      
        Console.WriteLine(t.ToUniversalTime().ToString("u").Replace(' ','T'));
    }
}
 

Выход: 2021-02-18T17:10:34Z

Я думаю, что я близок, но в выводе отсутствует часть миллисекунд. Как мне это добавить?

Комментарии:

1. что вы уже пробовали сами до сих пор? вы думали о том, чтобы преобразовать его в дату-время, а затем использовать встроенные методы форматирования? и какое отношение даты имеют к рыболовным сетям — или вы имели в виду ISO 8601?

2. @FranzGleichmann ах, теперь исправил название

3. вероятно, имеет смысл говорить об одном и том же времени на входе ( 2021-02-18T22:40:34.062 05:30 ) и выходе ( 2020-10-20T09:45:48.947Z ) — в противном случае смысл таков … непонятный

4. Errr, … насколько мне известно, оба представления соответствуют стандарту ISO 8601. Не так ли?

5. @FranzGleichmann Я внес правки с примером.