在.NET Core使用TimeZone将客户端时间转服务器本地时间但编译提示已过期_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 在.NET Core使用TimeZone将客户端时间转服务器本地时间但编译提示已过期

在.NET Core使用TimeZone将客户端时间转服务器本地时间但编译提示已过期

 2017/11/24 11:19:32  VAllen  程序员俱乐部  我要评论(0)
  • 摘要:当我们的项目国际化后,需要处理时区问题。在.NETCore之前我们可以通过以下代码将客户端时间转换为服务端时间:DateTimeserverTime=TimeZone.CurrentTimeZone.ToLocalTime(clientTime);在.NETCore里,TimeZone类已被标记为已过期,那么我们应该如何使用不过期的API进行时区转换呢?DateTimeserverTime=TimeZoneInfo.ConvertTime(clientTime,TimeZoneInfo
  • 标签:.net 使用 编译 net 客户 服务器 客户端 服务

当我们的项目国际化后,需要处理时区问题。

在.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

发表评论
用户名: 匿名