Конвертировать Local в Zulu / Zulu в Local для данного времени в C# - PullRequest
0 голосов
/ 30 января 2020

Я создаю API, который необходимо преобразовать за определенное время в Local в Zulu / Zulu в Local в C#. Подумайте о том, чтобы иметь местоположение, которое имеет 2 смещения (2 часовых пояса), например, США (Хьюстон) Не могли бы вы помочь мне понять, что должно быть логи c для этого.

1 Ответ

0 голосов
/ 30 января 2020

В общем случае вы должны хранить времена в API как UT C (например, DateTime.UtcNow) и возвращать клиентам как UT C (каждый клиент должен нести ответственность за преобразование UT C в его часовой пояс, это делает ваш API подходит для многих часовых поясов).

Когда API получает данные от клиентов, клиенты должны передавать данные с использованием UT C также

// Get the date and time for the current moment, adjusted 
// to the local time zone.

    DateTime saveNow = DateTime.Now;

// Get the date and time for the current moment expressed 
// as coordinated universal time (UTC).

    DateTime saveUtcNow = DateTime.UtcNow;
    DateTime myDt;

// Display the value and Kind property of the current moment 
// expressed as UTC and local time.

    DisplayNow("UtcNow: ..........", saveUtcNow);
    DisplayNow("Now: .............", saveNow);
    Console.WriteLine();

// Change the Kind property of the current moment to 
// DateTimeKind.Utc and display the result.

    myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc);

// Change the Kind property of the current moment to 
// DateTimeKind.Local and display the result.

    myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local);

// Change the Kind property of the current moment to 
// DateTimeKind.Unspecified and display the result.

    myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);
...