zoukankan      html  css  js  c++  java
  • 在.NET Core使用TimeZone将客户端时间转服务器本地时间但编译提示已过期

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

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

  • 相关阅读:
    第二章整理
    汇编实验二
    汇编实验一
    第一章整理
    第一部分 | 第1章 —— Hello Cocos2d-x
    返回 *this 的成员函数以及 const重载
    C++中的const
    680. Valid Palindrome II
    字典树
    单调队列
  • 原文地址:https://www.cnblogs.com/VAllen/p/TimeZone-Obsolete-Usage-TimeZoneInfo-Convert-ClientTime-To-ServerTime.html
Copyright © 2011-2022 走看看