1

我已经开发了一个带有 C# 应用程序的 MVC 4,我已经使用 Windows Azure 将它部署到了他们在弗吉尼亚州的数据中心。我在我的应用程序中记录用户活动,记录用户名和活动启动的时间。记录的时间需要转换为斐济标准时间。根据我在网上找到的内容,我编写了一个扩展方法来帮助实现此功能。

public static DateTime ToFijiTime(this DateTime datetime)
{

        datetime = DateTime.SpecifyKind(datetime, DateTimeKind.Utc);
        TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Fiji Standard Time");
        DateTime MyDateTime = TimeZoneInfo.ConvertTime(datetime, tz);
        return TimeZoneInfo.ConvertTimeToUtc(MyDateTime, tz);        
}

但是,一旦部署,这并不能很好地工作。我得到了正确的日期和几乎正确的时间。由于某种原因,它总是将时间作为“上午”时间。例如,如果时间应该是 2/04/2013 6:30:19 PM(斐济标准时间)记录的时间实际上是 2/04/2013 6:30:19 AM(斐济标准时间),但时间在早上喜欢 2/04/2013 1:30:19 AM 正确保存。谁能告诉我我的代码有什么问题?

4

1 回答 1

1

然后存储用户时区服务器端,

使用以下:

@TimeZoneInfo.ConvertTimeFromUtc(Model.CreatedOn, TimeZoneInfo.FindSystemTimeZoneById("E. US Standard Time"))

另请参阅:

将 UTC/GMT 时间转换为本地时间

于 2013-04-03T04:39:26.070 回答