繁体   English   中英

如何根据时区显示日期时间?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM