[英]How to display datetime according to time zone?
现在是墨尔本时间5:30 PM。 在洛杉矶,时间是12:30 AM。
此时将创建一个数据库记录。 它具有一个“ creation_datetime”时间戳。
当墨尔本的客户查看时间戳时,我想显示“ 2016-07-04 17:30(UTC + 10:00) ”。 当洛杉矶的客户看时间时,我想显示“ 2016-07-04 00:30(UTC-8:00) ”。
假设函数“ getRecordTimeStamp(123) ”将该时间戳返回为DateTime ,其中“ 123”是记录ID。 如何在C#中生成“ 2016-07-04 17:30(UTC + 10:00) ”和“ 2016-07-04 00:30(UTC-8:00) ”?
我解决了:
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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.