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

时间:2016-07-04 07:35:41

标签: c# datetime timezone

现在是墨尔本时间下午5:30。在洛杉矶,它是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。如何生成" 2016-07-04 17:30(UTC + 10:00)"和" 2016-07-04 00:30(UTC-8:00)"在C#?

1 个答案:

答案 0 :(得分: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();
相关问题