ConvertTimeToUtc的.NET核心替换?

时间:2017-02-01 03:30:05

标签: c# asp.net asp.net-mvc asp.net-core

.NET Core中的ConvertTimeToUtc发生了什么变化?我知道它不再存在了,但它被其他任何东西取代了吗?这就是我以前用来获取客户端日期和时间输入,然后将其转换为UTC以存储在数据库中的方式:

var timeZoneInfo=TimeZoneInfo.FindSystemTimeZoneById(viewModel.EventTimeZone);
var completeStartDate=TimeZoneInfo.ConvertTimeToUtc(viewModel.StartDate,timeZoneInfo);

这非常有效,直到.NET Core。我可以找到的任何当前示例似乎都在使用' ConvertTime',但它们从UTC到本地,这与我在这里的目的相反。那么有人可以告诉我如何在.NET Core中实现这一壮举吗?我目前在project.json文件中使用此框架设置:

  "frameworks": {
        "netcoreapp1.0": {
            "imports": [
                "dotnet5.6",
                "portable-net45+win8"
            ]
        }
    },

1 个答案:

答案 0 :(得分:8)

您可以使用TimeZoneInfo.ConvertTime,然后选择destinationTimeZone(第三个参数)为UTC:

var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(viewModel.EventTimeZone);
var completeStartDate =
    TimeZoneInfo.ConvertTime(viewModel.StartDate,timeZoneInfo, TimeZoneInfo.Utc);