.NET Core中TimeZone转换客户端时间至服务器本地时间,编译提示已过期的是?

摘要:当我们的项目国际化后,需要处理时区问题。 在.NET Core之前我们可以通过以下代码将客户端时间转换为服务端时间: 在.NET Core里,TimeZone类已被标记为已过期,那么我们应该如何使用不过期的API进行时区转换呢? 以下是博主
当我们的项目国际化后,需要处理时区问题。 在.NET Core之前我们可以通过以下代码将客户端时间转换为服务端时间: DateTime serverTime = TimeZone.CurrentTimeZone.ToLocalTime(clientTime); 在.NET Core里,TimeZone类已被标记为已过期,那么我们应该如何使用不过期的API进行时区转换呢? DateTime serverTime = TimeZoneInfo.ConvertTime(clientTime, TimeZoneInfo.Local); 以下是博主自己写的DateTimeExtensions类中的转换为服务端时间的扩展方法: public static class DateTimeExtensions { /// <summary> /// 将客户端时间转换为服务端本地时间 /// </summary> /// <param name="clientTime">客户端时间</param> /// <returns>返回服务端本地时间</returns> public static DateTime ToServerLocalTime(this DateTime clientTime) { //DateTime serverTime1 = TimeZone.CurrentTimeZone.ToLocalTime(clientTime); //在.NET Core标识已过期的类TimeZone的写法 DateTime serverTime2 = TimeZoneInfo.ConvertTime(clientTime, TimeZoneInfo.Local);//等价的建议写法 return serverTime2; } } 关于TimeZone与TimeZoneInfo类的区别/比较,请参考: https://www.cnblogs.com/dongjh/archive/2012/08/30/2664676.html 在不同时区之间转换时间,请参考MSDN案例: https://msdn.microsoft.com/zh-cn/library/bb397769.aspx