UTC Time

整個地球分為二十四時區,每個時區都有自己的本地時間。在國際無線電通信場合,為了統一起見,使用一個統一的時間,稱為通用協調時(UTC, Universal Time Coordinated)。UTC與格林尼治平均時(GMT, Greenwich Mean Time)一樣,都與英國倫敦的本地時相同。在本文中,UTC與GMT含義完全相同。

北京時區是東八區,領先UTC八個小時,在電子郵件信頭的Date域記為+0800。如果在電子郵件的信頭中有這么一行:

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

說明信件的發送地的地方時間是二○○二年十一月八號,星期五,早上九點四十二分(二十二秒),這個地方的本地時領先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,既前一天的晚上八點三十二分。

紐約的時區是西五區,比UTC落后五個小時,記為 -0500:

UTC + (-0500) = 紐約時間 (3)

UTC = 紐約時間 + 0500 (4)

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

UTC = 北京時間 - 0800 = 紐約時間 + 0500 (5)

即 北京時間 = 紐約時間 + 1300 (6)

即北京時間領先紐約時間十三個小時,由(6)式,

紐約時間 = 北京時間 - 1300 (7)

在四月下旬,紐約又換用夏令時,又稱為日光節約時,比標準紐約時間提前一個小時,實際成為西四區的標準時間,成為 -0400。

UTC + (-0400) = 紐約夏令時,套用以上公式,

北京時間 = 紐約夏令時 + 1200

紐約夏令時 = 北京時間 - 1200

在這些轉換中,最重要的公式就是

UTC + 時區差 = 本地時間

時區差東為正,西為負。例如,東八區(北京)是 +0800,西五區(紐約)是-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,把北京時間轉換成為了紐約時間,而且把二十四小時格式的時間轉換成為了十二小時的格式。當然,為了時間轉換正確,發送方和接受方的計算機的時區都要 設置正確,在這里,發送方的時區要正確地設為北京時區東八區,而我的時區要設為西五區。

為了方便起見,我在這里放上紐約,加洲以及北京實時顯示的時鐘,以省去計算的麻煩。

?

全球標準時間 (UTC)

全球標準時間指的是由世界時間標準設定的時間。原先也被稱為格林威治標準時間或者 GMT。

我們知道,本初子午線被定義從倫敦郊區的皇家格林尼治天文臺穿過,那里的時間被定義為全球的標準時間。

中國位于東八區,所以要比這個時間早八個小時,也就是說,全球標準時間是5日0點時,中國是5日的8點,而美國部分地區還處于4日的黃昏。

有些對象、函數中,需要使用 UTC 時間,我們就需要將中國的時間轉換成 UTC 時間,使用 toUTCString

var d = new Date();
document.write("當前的 UTC 時間是:" + d.toUTCString());

toGMTString 與 toUTCString 功能、用法均相同,但我們推薦使用 toUTCString,畢竟 GMT 是以前的稱呼。

?

c#

?

DateTime 值

DateTime 類型的時間值描述通常使用協調世界時 (UTC) 標準來表達,它是格林尼治標準時間 (GMT) 的國際識別名。協調世界時是在經度零度(即 UTC 原點)測量到的時間。夏時制不適用于 UTC。

本 地時間是相對于特定時區而言。時區與時區偏移量關聯,它是時區從 UTC 原點算起的以小時為單位的偏移量。此外,本地時間有可能受夏時制影響,夏時制會對日長增加或減少一小時。因此,本地時間的計算是將時區偏移量加上 UTC,如有必要,再根據夏時制進行調整。UTC 原點的時區偏移量為零。

UTC 時間適合于計算、比較日期和時間,以及將日期和時間存儲在文件中。本地時間適合于在桌面應用程序的用戶界面中顯示。識別時區的應用程序(如許多 Web 應用程序)還需要使用許多其他時區。

如果 DateTime 對象的 Kind 屬性為 DateTimeKind..::.Unspecified,則其未指定表示的時間是本地時間、UTC 時間還是某個其他時區中的時間。

DateTime 運算

使用 DateTime 結構的計算(如 Add 或 Subtract)不會修改該結構的值。相反,計算會返回新的 DateTime 結構,其值為計算結果。

03ybds8y.alert_note(zh-cn,VS.95).gif說明:

DateTime 對象的計算和比較僅當這些對象表示同一時區中的時間時才有意義。

時區之間(例如,UTC 和本地時間之間,或者一個時區中的時間和本地時間之間)的轉換運算會考慮本地時區的夏時制,但是算術和比較運算不考慮。

DateTime 結構本身不太支持從一個時區轉換至另一個時區。您可以使用 ToLocalTime 方法將 UTC 轉換為本地時間,也可以使用 ToUniversalTime 方法從本地時間轉換為 UTC。但是,整套的時區轉換方法是在 TimeZoneInfo 類中提供的。使用這些方法,可以將世界上任一時區中的時間轉換為 UTC 或者本地時間。

每個 DateTime 成員都隱式使用公歷執行其操作,例外是指定日歷的構造函數以及使用從 IFormatProvider 派生的參數(如 System.Globalization..::.DateTimeFormatInfo)的方法,該參數隱式指定日歷。

DateTime 類型中的成員所執行的運算會考慮閏年和月中天數等細節。

DateTime 與 TimeSpan

DateTime 值類型與 TimeSpan 值類型的差異在于 DateTime 表示時間上的一刻,而 TimeSpan 表示時間間隔。例如,這意味著將 DateTime 的一個實例與另一個實例相減可以獲得表示這兩個實例之間的時間間隔的TimeSpan 對象。或者,將一個正 TimeSpan 與當前 DateTime 相加可以獲得表示將來日期的 DateTime 值。

可以向 DateTime 對象增加或減少一個時間間隔。時間間隔可為負,也可為正,可以用刻度或秒等為單位表示,也可表示為 TimeSpan 對象。

實現的接口

此類型實現 IComparable、IComparable<(Of <(T>)>)、IEquatable<(Of <(T>)>)、IFormattable 和IConvertible 接口。使用 Convert 類進行轉換,而不是使用此類型的 IConvertible 顯式接口成員實現。

?示例

下面的代碼示例演示如何大致比較等效的 DateTime 值,將它們聲明為“相等”時接受很小的差異。

C#
?1using?System;
?2
?3class?Example
?4{
?5
?6???static?bool?RoughlyEquals(DateTime?time,?DateTime?timeWithWindow,?int?windowInSeconds,?int?frequencyInSeconds)
?7???{
?8
?9??????long?delta?=?(long)((TimeSpan)(timeWithWindow?-?time)).TotalSeconds?%?frequencyInSeconds;
10
11??????delta?=?delta?>?windowInSeconds???frequencyInSeconds?-?delta?:?delta;
12
13??????return?Math.Abs(delta)?<?windowInSeconds;
14
15???}

16
17???public?static?void?Demo(System.Windows.Controls.TextBlock?outputBlock)
18???{
19??????int?window?=?10;
20??????int?freq?=?60?*?60?*?2;?//?2?hours;
21
22??????DateTime?d1?=?DateTime.Now;
23
24??????DateTime?d2?=?d1.AddSeconds(2?*?window);
25??????DateTime?d3?=?d1.AddSeconds(-2?*?window);
26??????DateTime?d4?=?d1.AddSeconds(window?/?2);
27??????DateTime?d5?=?d1.AddSeconds(-window?/?2);
28
29??????DateTime?d6?=?(d1.AddHours(2)).AddSeconds(2?*?window);
30??????DateTime?d7?=?(d1.AddHours(2)).AddSeconds(-2?*?window);
31??????DateTime?d8?=?(d1.AddHours(2)).AddSeconds(window?/?2);
32??????DateTime?d9?=?(d1.AddHours(2)).AddSeconds(-window?/?2);
33
34??????outputBlock.Text?+=?String.Format("d1?~=?d1?[true]:?"?+?RoughlyEquals(d1,?d1,?window,?freq))?+?"\n";
35??????outputBlock.Text?+=?String.Format("d1?~=?d2?[false]:?"?+?RoughlyEquals(d1,?d2,?window,?freq))?+?"\n";
36??????outputBlock.Text?+=?String.Format("d1?~=?d3?[false]:?"?+?RoughlyEquals(d1,?d3,?window,?freq))?+?"\n";
37??????outputBlock.Text?+=?String.Format("d1?~=?d4?[true]:?"?+?RoughlyEquals(d1,?d4,?window,?freq))?+?"\n";
38??????outputBlock.Text?+=?String.Format("d1?~=?d5?[true]:?"?+?RoughlyEquals(d1,?d5,?window,?freq))?+?"\n";
39
40??????outputBlock.Text?+=?String.Format("d1?~=?d6?[false]:?"?+?RoughlyEquals(d1,?d6,?window,?freq))?+?"\n";
41??????outputBlock.Text?+=?String.Format("d1?~=?d7?[false]:?"?+?RoughlyEquals(d1,?d7,?window,?freq))?+?"\n";
42??????outputBlock.Text?+=?String.Format("d1?~=?d8?[true]:?"?+?RoughlyEquals(d1,?d8,?window,?freq))?+?"\n";
43??????outputBlock.Text?+=?String.Format("d1?~=?d9?[true]:?"?+?RoughlyEquals(d1,?d9,?window,?freq))?+?"\n";
44
45
46???}

47}

48
來自:http://msdn.microsoft.com/zh-cn/library/system.datetime(VS.95).aspx

轉載于:https://www.cnblogs.com/yefengmeander/archive/2011/09/26/2887672.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448057.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決:Unknown custom element: <myData> - did you register the component correctly? For recursive compon

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 引用一個組件報錯&#xff1a; Unknown custom element: <myData> - did you register the component correctly?For recursi…

無處不在的container_of

無處不在的container_of linux 內核中定義了一個非常精煉的雙向循環鏈表及它的相關操作。如下所示&#xff1a; struct list_head {struct list_head* next, * prev; };ubuntu 12.04 中這個結構定義在 /usr/src/linux-headers-3.2.0-24-generic/include/linux/types.h 中&…

程序員學習能力提升三要素

摘要&#xff1a;IT技術的發展日新月異&#xff0c;新技術層出不窮&#xff0c;具有良好的學習能力&#xff0c;能及時獲取新知識、隨時補充和豐富自己&#xff0c;已成為程序員職業發展的核心競爭力。本文中&#xff0c;作者結合多年的學習經驗總結出了提高程序員學習能力的三…

時間,數字 ,字符串之間的轉換

package com.JUtils.base;import java.sql.Timestamp; import java.text.SimpleDateFormat;/*** 轉換工具類<br>* 若待轉換值為null或者出現異常&#xff0c;則使用默認值**/ public class ConvertUtils {/*** 字符串轉換為int*** param str * 待轉換的字符串* param …

宏定義及相關用法

宏定義及相關用法 歡迎各位補充 目錄 一些成熟軟件中常用的宏定義&#xff1a;使用一些內置宏跟蹤調試&#xff1a;宏定義防止使用時錯誤&#xff1a;宏與函數 帶副作用的宏參數 特殊符號&#xff1a;’#’、’##’ 1、一般用法2、當宏參數是另一個宏的時候 __VA_ARGS__與##…

解決:Cannot read property ‘component‘ of undefined ( 即 vue-router 0.x 轉化為 2.x)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 vue項目原本是用0.x版本的vue-router&#xff0c;但是去報出&#xff1a;Cannot read property component of undefined 這是因為版本問…

AMD Mantle再添新作,引發下代GPU架構猜想

摘要&#xff1a;今年秋天即將發布的《希德梅爾文明&#xff1a;太空》將全面支持AMD Mantle API&#xff0c;如此強大的功能背后離不開強大的CPU、GPU支持。上周AMD爆出了下一代海盜島R9 300系列&#xff0c;據網友猜測海盜島家族可能用上速度更快的HBM堆棧式內存。 小伙伴們…

不作35歲的程序員?

程序員三部曲--不作35歲的程序員?摩西2000 在中國&#xff0c;程序員不能超過35歲&#xff0c;似乎已經是不爭的事實&#xff0c;軟件開發工作就是青春飯&#xff0c;頂多靠畢業這十年的時間&#xff0c;超過這個年齡&#xff0c;要不成功躍身成為管理者&#xff0c;要不轉…

linux下使用TC模擬弱網絡環境

linux下使用TC模擬弱網絡環境 模擬延遲傳輸簡介 netem 與 tc: netem 是 Linux 2.6 及以上內核版本提供的一個網絡模擬功能模塊。該功能模塊可以用來在性能良好的局域網中,模擬出復雜的互聯網傳輸性能,諸如低帶寬、傳輸延遲、丟包等等情 況。使用 Linux 2.6 (或以上) 版本內核…

CDN 是什么 、CDN 引入

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 CDN 的全稱是 Content Delivery Network&#xff0c;即內容分發網絡。 CDN的基本原理是廣泛采用各種緩存服務器&#xff0c;將這些緩存…

長壽的人會有的8個健康理念

長壽的人會有的8個健康理念。年輕的時候總是在揮霍身體健康&#xff0c;吸煙、喝酒沒有節制&#xff0c;到老了之后身體會出現各種問題。老年人如果想要身體健康、長壽的話&#xff0c;就要從日常生活習慣做起。下面小編就來介紹長壽的人會有的8個健康理念&#xff1a; 1、少…

Ubuntu下selenium+Chrome的安裝使用

Ubuntu下seleniumChrome的安裝使用 安裝 chrome 官網下載安裝包 sudo dpkg -i google-chrome-stable_current_amd64.deb whereis google-chrome 安裝selenium pip3 install selenium 下載chromedriver(火狐使用geckodriver)驅動 http://npm.taobao.org/mirrors/chromed…

shoot for用法

Look, there are people like Ross who need to shoot for the stars, with his museum, and his papers getting published.---《老友記》 而像羅斯這種人則追求卓越&#xff0c;博物館&#xff0c;發表論文。 爭取;為...而努力Were shooting this year for a 50% increase in…

VUE : 雙重 for 循環寫法、table 解析任意 list 、萬能表格組件、解析一維數組、動態生成 table 所有數據

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.需求&#xff1a; 我想要一個 table 組件能在實際調用時動態生成所有的 tr 、td 。 后端返回的只是一個 list &#xff0c; 前端頁…

安全離職妙招

高招的離職&#xff0c;不但有可能讓前老板幫你說好話&#xff0c;讓前同事成為你的啦啦隊&#xff0c;未來若有好機會&#xff0c;還會想到你&#xff0c;只要你學會克服離職流程中的五個尷尬情境。 情境一、離職怎么提&#xff1f; 口頭請辭&#xff0c;最先告知上司。 有…

字節內推~

大佬們有興趣來字節約飯么&#xff0c;下面是內推鏈接~ 社招內推鏈接&#xff1a;https://job.toutiao.com/s/LwpKWU8 校招內推鏈接&#xff1a;https://job.toutiao.com/s/LwsFw6g

使用編輯工具快速創建實體對象的方法

快速創建java類 (\w)\s(.) /** $2 */\nprivate String $1; search Mode 為 Reqular expression 轉載于:https://www.cnblogs.com/otways/p/11283303.html

超詳細 圖解 : IntelliJ IDEA 逆向生成 JAVA 實體類

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.配置數據庫,&#xff0c;這里連接的是mysql。 2.填寫 連接數據庫的信息&#xff0c;填寫完成后可以點擊Test Connection,測試一下是否…

用面粉和醋洗頭 讓你的頭發黑亮又濃密

用面粉和醋洗頭發&#xff0c;別看這些最廉價、最普通的東西&#xff0c;卻能帶來意想不到的效果。調配這種洗頭液很簡單&#xff0c;取50&#xff5e;100克面粉&#xff0c;加入少許涼水調成稀面糊&#xff0c;倒入沸水中煮開&#xff0c;然后加入25&#xff5e;50克醋&#x…

leetcode練習——數組篇(1)(std::ios::sync_with_stdio(false);std::cin.tie(nullptr);)

題號1. 兩數之和&#xff1a; 給定一個整數數組 nums 和一個目標值 target&#xff0c;請你在該數組中找出和為目標值的那 兩個 整數&#xff0c;并返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是&#xff0c;你不能重復利用這個數組中同樣的元素。 示例: …