添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

TimeZone 类来检索有关当前时区的信息,并将时间从本地时间转换为协调世界时 (UTC),也就是说这个类是用来处理LocalTimeZone和UTC时间的。

TimeZoneInfo类可以处理系统上预定义的任何时区、创建新时区,以及轻松地将日期和时间从一个时区转换到另一个时区。从微软的官方提示上我们可以看出,TimeZone 类基本已经被TimeZoneInfo类取代了。
在这里插入图片描述
这是我们可以用TimeZoneInfo来处理

        /// <summary>
        /// 时间戳转换成时间
        /// </summary>
        /// <param name="timestamp">时间戳</param>
        /// <returns></returns>
        public static DateTime? ToDateTime(long timestamp)
            string ID = TimeZoneInfo.Local.Id;
			DateTime start = new DateTime(1970, 1, 1) + TimeZoneInfo.Local.GetUtcOffset(DateTime.Now);
			DateTime startTime = TimeZoneInfo.ConvertTime(start, TimeZoneInfo.FindSystemTimeZoneById(ID));
			if(millisecond ){
				//毫秒级时间戳
				startTime.AddMilliseconds(timestamp);
			}else{
				//根据时间戳类型就行转换
				//例:秒级时间戳
				startTime.AddSeconds(timestamp);
                var timeZoneInfoString = _user.TimeZoneInfoString;
                if (!string.IsNullOrEmpty(timeZoneInfoString
                                    对于一个开放于全球的网站或服务,在时间上的显示是一个问题,因为各个国家都会有所谓的时差,好在 .Net Framework 提供 TimeZoneInfo 类来解决这个问题。TimeZoneInfo 类的成员支持以下操作:检索操作系统已定义的时区。枚举系统上可用的时区。在不同时区之间转换时间。创建操作系统尚未定义的新时区。序列化时区,供以后检索使用。
一、计算机时间为什么都从1970年1月1日为起始
最初计算机操作系统是32位,而时间也是32为表示。Integer在java内用32位表示,因此32为能表示的最大值就是2147483647。另外一年365天的总秒数是31536000,2147483647/31536000=68.1,也
                                    获取当地时间:
        DateTime dt = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local);
        DateTime dt1 = TimeZoneInfo.ConvertTimeFromUtc(dt, TimeZoneInfo.FindSystemTimeZoneById("Romance Standard Time"));//参数对应国家或者时区   ***对于有夏令时冬令时的区域,程序会自动调整**
                                    string localID = TimeZoneInfo.Local.Id;
            Debug.Log(localID);
            DateTime StartDateTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.FindSystemTimeZoneById("China Standard Time"));
            DateTime StartDateTime.
                                    通过设置正确的时区,我们能够确保应用程序与用户所在的时区保持一致,并正确地处理日期和时间。通过设置正确的时区,我们可以确保我们的应用程序能够正确地处理日期和时间,并与用户所在的时区保持一致。该类提供了许多与时区相关的方法和属性,使我们能够轻松地获取、设置和转换不同的时区信息。在实际开发中,我们可以根据用户的位置或其他需求来动态地设置时区,以确保应用程序能够正确地处理日期和时间。方法来打印当前系统所在的时区信息,可以看到输出结果为:当前系统时区:(UTC+08:00) 北京、重庆、香港特别行政区、乌鲁木齐。
                                    由于工作需要我们有时常常需要转化当地时间为其它时区的时间,或是把某一个时区的时间,转成另一个时区。
最近由于用了一些C#的方法,下面小结一下,省得过后自已又忘了。
1。 用如下的方法,可以得到所有的时区信息。
TimeZoneInfo.GetSystemTimeZones()
2。得到时区ID
TimeZoneInfo.GetSystemTimeZones()[75].ID
                                    后台处理:后台自定义一个中间件或拦截器,对处理后的请求做时间转换逻辑操作,将返回接口中的所有时间参数值转换成当前用户所在地区时区时间,实现全局的时区转换功能。前台处理:前台获取当前用户使用设备所在地区时区信息,并将相关时区信息设置在平台HTTP接口中,接口请求头添加请求参数如。其中,不同地区的用户访问平台时,所浏览的相关时间数据为当前地区所在的时区时间。前台处理:前台获取当前用户所在时区,对接口所返回的时间属性进行时区转换操作。后台处理:后台接口正常返回时间数据,即UTC时间,不做时区转换处理。