UTC时间

By admin in 天文台 on 2019年1月23日

方方面面地球分为二十四时区,每个时区都有友好的地头时间。在国际有线电通讯场面,为了统一起见,使用一个联结的时刻,称为通用协调时(UTC,
Universal 提姆(Tim)e Coordinated)。UTC与格林尼治平均时(GMT, 格林(Green)wich Mean
提姆(Tim)e)一样,都与U.K.伦敦(London)的地点时同样。在本文中,UTC与GMT含义完全相同。

京城时区是东八区,超过UTC七个钟头,在电子邮件信头的Date域记为+0800。固然在电子邮件的信头中有诸如此类一行:

Date: Fri, 08 Nov 2002 09:42:22 +0800

表达信件的发送地的地点时间是二○○二年十7月八号,周四,中午九点四十二分(二十二秒),那一个地方的地面时超越UTC多个钟头(+0800,
就是东八区时间)。电子邮件信头的Date域使用二十四小时的时钟,而不应用AM和PM来标记上中午。

以那么些电子邮件的发送时间为例,假诺要把那个日子转载为UTC,可以动用一下公式:

UTC + 时区差 = 本地时间

时区差东为正,西为负。在此,把东八区时区差记为 +0800,

UTC + (+0800) = 本地(北京)时间 (1)

那么,UTC = 本地时间(日本东京时间))- 0800 (2)

0942 – 0800 = 0142

即UTC是当天凌晨一点四十二分二十二秒。假诺结果是负数就意味着是UTC前一天,把那些负数加上2400就是UTC在明日的岁月。例如,本地
(巴黎)时间是 0432 (凌晨四点三十二分),那么,UTC就是 0432 – 0800 =
-0368,负号意味着是前几天, -0368 + 2400 =
2032,既前一天的晚上八点三十二分。

London的时区是西五区,比UTC落后多少个小时,记为 -0500:

UTC + (-0500) = London时刻 (3)

UTC = London大运 + 0500 (4)

把(2)式 - (4)式相比较,

UTC = 上海时间 - 0800 = London大运 + 0500 (5)

即 新加坡时间 = London时间 + 1300 (6)

即上海时间超越London时光十三个钟头,由(6)式,

London时间 = 香岛时间 - 1300 (7)

在一月下旬,London又换用夏令时,又称为日光节约时,比标准London岁月提前一个小时,实际成为西四区的科班时间,成为
-0400。

UTC + (-0400) = London夏令时,套用以上公式,

巴黎时间 = 伦敦(London)夏令时 + 1200

纽约夏令时 = 东京(Tokyo)时间 - 1200

在这么些转换中,最要紧的公式就是

UTC + 时区差 = 本地时间

时区差东为正,西为负。例如,东八区(香港)是
+0800,西五区(伦敦(London))是-0500,加州是西八区,是-0800,弥利坚中央时区是西六区,-0600,花旗国山地时区是西七区,-0700,太平洋时
区是西八区,-0800,在春季利用夏时制,成为-0700。德国时区是东一区,+0100,冬季改成+0200。

一大半电子邮件程序,例如Outlook
Express,在显示时间时,统计机程序把日子先转移成为地面时间再呈现,例如,邮件的Date域为:

Date: Fri, 08 Nov 2002 09:42:22 +0800

Outlook Express在体现时就浮现为:

Date: Thur, 07 Nov 2002 08:42:22
pm,把上海时间转换成为了纽约小运,而且把二十四小时格式的时间转移成为了十二钟头的格式。当然,为了时刻更换正确,发送方和接受者的统计机的时区都要
设置科学,在这边,发送方的时区要正确地设为东京时区东八区,而自己的时区要设为西五区。

为了便利起见,我在此地放上London,加洲以及首都实时显示的时钟,以省去统计的难为。

 

全世界标准时间 (UTC)

海内外标准时间指的是由世界时间标准设定的年华。原先也被誉为格林威治标准时间或者
GMT。

我们明白,本初子午线被定义从伦敦(London)郊区的皇室格林尼治天文台穿过,那里的时间被定义为满世界的正式时间。

中原位居东八区,所以要比那些小时早三个小时,也就是说,全球正式时间是5日0点时,中国是5日的8点,而美利坚合众国局地地区还地处4日的黄昏。

有些对象、函数中,需求使用 UTC 时间,我们就需求将中国的时日转移成 UTC
时间,使用 toUTCString

var d = new Date();
document.write(“当前的 UTC 时间是:” + d.toUTCString());

toGMTString 与 toUTCString 作用、用法均一致,但大家推荐使用
toUTCString,毕竟 GMT 是在此之前的名叫。

 

c#

 

DateTime 值

Date提姆e 类型的时刻值描述常常采用协调世界时 (UTC)
标准来表述,它是格林(Green)尼治标准时间 (GMT)
的国际识别名。协调世界时是在经度零度(即 UTC
原点)测量到的时光。夏时制不适用于 UTC。

本 地时间是对立于特定时区而言。时区与时区偏移量关联,它是时区从 UTC
原点算起的以时辰为单位的偏移量。其余,本地时间有可能受夏时制影响,夏时制会对日长扩大或回落一钟头。由此,本地时间的计量是将时区偏移量加上
UTC,如有要求,再按照夏时制进行调整。UTC 原点的时区偏移量为零。

UTC
时间吻合于总括、比较日期和岁月,以及将日期和岁月存储在文件中。本地时间吻合于在桌面应用程序的用户界面中浮现。识别时区的应用程序(如广大
Web 应用程序)还要求利用过多任曾几何时区。

如果 DateTime 对象的
Kind
属性为
DateTimeKind..::.Unspecified,则其未指定表示的年月是地方时间、UTC
时间仍旧某个其余时区中的时间。

DateTime 运算

应用 Date提姆e 结构的盘算(如
Add

Subtract)不会修改该协会的值。相反,总计会回来新的
Date提姆(Tim)e 结构,其值为总结结果。

说明:

DateTime 对象的计算和比较仅当这些对象表示同一时区中的时间时才有意义。

时区之间(例如,UTC
和地面时间里面,或者一个时区中的时间和本地时间之内)的转移运算会考虑当地时区的夏时制,不过算术和相比较运算不考虑。

Date提姆e 结构本身不太帮忙从一个时区转换至另一个时区。您能够利用
ToLocalTime
方法将 UTC 转换为本地时间,也得以动用
ToUniversalTime
方法从地点时间转移为 UTC。不过,整套的时区转换方法是在
TimeZoneInfo
类中提供的。使用那几个格局,可以将世界上任一时区中的时间转移为 UTC
或者当地时间。

种种 Date提姆(Tim)e
成员都隐式使用公历执行其操作,例外是点名日历的构造函数以及选用从
IFormatProvider
派生的参数(如
System.Globalization..::.DateTimeFormatInfo)的点子,该参数隐式指定日历。

Date提姆(Tim)e 类型中的成员所进行的运算会考虑闰年和月尾天数等细节。

DateTime 与 TimeSpan

Date提姆e 值类型与
TimeSpan
值类型的出入在于 Date提姆(Tim)e 表示时间上的一刻,而
TimeSpan
表示时间距离。例如,那象征将 Date提姆(Tim)e
的一个实例与另一个实例相减可以得到表示那八个实例之间的时光距离的
TimeSpan
对象。或者,将一个正
TimeSpan
与当下 DateTime 相加能够拿走表示未来日子的 Date提姆e 值。

可以向 Date提姆(Tim)e
对象伸张或调减一个时间距离。时间距离可为负,也可为正,可以用刻度或秒等为单位表示,也可代表为
TimeSpan
对象。

落到实处的接口

此类型达成
IComparableIComparable<(Of
<(T>)>)
IEquatable<(Of
<(T>)>)
IFormattable

IConvertible
接口。使用
Convert
类进行转换,而不是选取此类型的
IConvertible
显式接口成员贯彻。

图片 1 示例

上边的代码示例演示怎么样大致相比较相同的 Date提姆(Tim)e
值,将它们讲明为“相等”时接受很小的歧异。

C#图片 2 😉

 1图片 3using System;
 2图片 4
 3图片 5class Example
 4图片 6图片 7图片 8{
 5图片 9
 6图片 10   static bool RoughlyEquals(DateTime time, DateTime timeWithWindow, int windowInSeconds, int frequencyInSeconds)
 7图片 11图片 12   图片 13{
 8图片 14
 9图片 15      long delta = (long)((TimeSpan)(timeWithWindow – time)).TotalSeconds % frequencyInSeconds;
10图片 16
11图片 17      delta = delta > windowInSeconds ? frequencyInSeconds – delta : delta;
12图片 18
13图片 19      return Math.Abs(delta) < windowInSeconds;
14图片 20
15图片 21   }
16图片 22
17图片 23   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
18图片 24图片 25   图片 26{
19图片 27      int window = 10;
20图片 28      int freq = 60 * 60 * 2; // 2 hours;
21图片 29
22图片 30      DateTime d1 = DateTime.Now;
23图片 31
24图片 32      DateTime d2 = d1.AddSeconds(2 * window);
25图片 33      DateTime d3 = d1.AddSeconds(-2 * window);
26图片 34      DateTime d4 = d1.AddSeconds(window / 2);
27图片 35      DateTime d5 = d1.AddSeconds(-window / 2);
28图片 36
29图片 37      DateTime d6 = (d1.AddHours(2)).AddSeconds(2 * window);
30图片 38      DateTime d7 = (d1.AddHours(2)).AddSeconds(-2 * window);
31图片 39      DateTime d8 = (d1.AddHours(2)).AddSeconds(window / 2);
32图片 40      DateTime d9 = (d1.AddHours(2)).AddSeconds(-window / 2);
33图片 41
34图片 42      outputBlock.Text += String.Format(“d1 ~= d1 [true]: ” + RoughlyEquals(d1, d1, window, freq)) + “\n”;
35图片 43      outputBlock.Text += String.Format(“d1 ~= d2 [false]: ” + RoughlyEquals(d1, d2, window, freq)) + “\n”;
36图片 44      outputBlock.Text += String.Format(“d1 ~= d3 [false]: ” + RoughlyEquals(d1, d3, window, freq)) + “\n”;
37图片 45      outputBlock.Text += String.Format(“d1 ~= d4 [true]: ” + RoughlyEquals(d1, d4, window, freq)) + “\n”;
38图片 46      outputBlock.Text += String.Format(“d1 ~= d5 [true]: ” + RoughlyEquals(d1, d5, window, freq)) + “\n”;
39图片 47
40图片 48      outputBlock.Text += String.Format(“d1 ~= d6 [false]: ” + RoughlyEquals(d1, d6, window, freq)) + “\n”;
41图片 49      outputBlock.Text += String.Format(“d1 ~= d7 [false]: ” + RoughlyEquals(d1, d7, window, freq)) + “\n”;
42图片 50      outputBlock.Text += String.Format(“d1 ~= d8 [true]: ” + RoughlyEquals(d1, d8, window, freq)) + “\n”;
43图片 51      outputBlock.Text += String.Format(“d1 ~= d9 [true]: ” + RoughlyEquals(d1, d9, window, freq)) + “\n”;
44图片 52
45图片 53
46图片 54   }
47图片 55}
48图片 56

复制代码😉

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 亚洲必赢手机官网 版权所有