2016-07-04 3 views
0

Сейчас в Мельбурне 5:30 вечера. В Лос-Анджелесе 12:30.Как отображать дату и время в соответствии с часовым поясом?

В настоящий момент создана запись базы данных. У этого есть метка времени создания.

Когда клиенты в Мельбурне смотрят на отметку времени, я хотел бы отобразить «2016-07-04 17:30 (UTC + 10: 00)». Когда клиенты в Лос-Анджелесе смотрят на это время, я хотел бы отобразить «2016-07-04 00:30 (UTC-8: 00)».

Давайте предположим, что функция "getRecordTimeStamp (123)" возвращает этот штамп времени как DateTime, где "123" является идентификатор записи. Как мне создать «2016-07-04 17:30 (UTC + 10: 00)» и «2016-07-04 00:30 (UTC-8: 00)« в C#?

+0

Ну, что DateTime возвращается? Это временная метка UTC? что ты уже испробовал? Какое приложение это и как вы знаете часовой пояс пользователя? –

ответ

0

Я работал его:

DateTime now = DateTime.Now; 
DateTime utcTimeNow = TimeZoneInfo.ConvertTimeToUtc(now); 

TimeZoneInfo melbourneTimeZone = TimeZoneInfo.FindSystemTimeZoneById("E. Australia Standard Time"); 
DateTime melbourneTime = TimeZoneInfo.ConvertTimeFromUtc(utcTimeNow, melbourneTimeZone); 
Console.WriteLine("The date and time are {0} {1}.", melbourneTime, melbourneTimeZone.IsDaylightSavingTime(melbourneTime) ? melbourneTimeZone.DaylightName : melbourneTimeZone.StandardName); 

TimeZoneInfo laTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); 
DateTime laTime = TimeZoneInfo.ConvertTimeFromUtc(utcTimeNow, laTimeZone); 
Console.WriteLine("The date and time are {0} {1}.", laTime, laTimeZone.IsDaylightSavingTime(laTime) ? laTimeZone.DaylightName : laTimeZone.StandardName); 


Console.ReadKey(); 
Смежные вопросы