【问题标题】:How to display datetime according to time zone?如何根据时区显示日期时间?
【发布时间】:2016-07-04 07:35:40
【问题描述】:

现在是墨尔本时间下午 5:30。在洛杉矶是 12:30 AM。

此时创建了一条数据库记录。它有一个“creation_datetime”时间戳。

墨尔本的客户看时间戳时,我想显示“2016-07-04 17:30 (UTC+10:00)”。当 LA 的客户查看时间时,我想显示“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# 中?

【问题讨论】:

  • 那么 DateTime 返回什么?它是UTC时间戳吗?你试过什么了?这是一个什么样的应用程序,你怎么知道用户的时区?

标签: c# datetime timezone


【解决方案1】:

我解决了:

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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多