ISO8601——全能的日期和時間格式

ISO8601是日期和時間格式的國際標準,用於表示日期、時間和時間間隔。它於1988年首次發布,最近一次修訂於2019年。ISO8601的標準化程度高、靈活性強,因此被廣泛應用於科學、工業、航空和金融等領域。

一、ISO8601日期轉換

ISO8601日期格式是YYYY-MM-DD(年-月-日), 主要用於表示日期。例如,1987年3月25日可寫為1987-03-25。

而在JavaScript中可以使用下列代碼進行日期字元串和Date對象互相轉換:

//將日期字元串轉換為Date對象
const dateStr = '1987-03-25';
const dateObj = new Date(dateStr);
console.log(dateObj); //Wed Mar 25 1987 00:00:00 GMT+0800 (中國標準時間)

// 將Date對象轉換為日期字元串
const date = new Date('1987-03-25');
const dateStr = date.toISOString().slice(0, 10);
console.log(dateStr); // 1987-03-25

使用這些方法可以方便地進行日期的格式轉化。

二、ISO8601時間轉換

ISO8601時間格式是HH:MM:SS(小時:分鐘:秒),主要用於表示時刻。例如,早上8點15分30秒可寫為08:15:30。

類似日期格式,JavaScript也提供了日期字元串和Date對象的互相轉換方法:

// 將時間字元串轉換為Date對象
const timeStr = '08:15:30';
const now = new Date();
const timeObj = new Date(now.toDateString() + ' ' + timeStr);
console.log(timeObj); //Wed Jun 09 2021 08:15:30 GMT+0800 (中國標準時間)

// 將Date對象轉換為時間字元串
const timeObj = new Date('Wed Jun 09 2021 08:15:30 GMT+0800 (中國標準時間)');
const timeStr = timeObj.toLocaleTimeString({}, {timeStyle: 'medium'});
console.log(timeStr); // 上午8:15:30

類似這樣的互相轉換可以應用於開發中的各種場合。

三、ISO8601時間格式Z是啥

ISO8601格式中常見的術語Z代表UTC時間,是從格林威治時間(GMT)開始沿赤道地方向劃分的24個時區之一。

為了將本地時間表示成標準時間,您可以使用以下代碼將時間字元串解析為UTC時間的Date對象:

// 將本地時間字元串轉換為UTC時間的Date對象
const dateStr = '1987-03-25T08:15:30+08:00'
const dateObj = new Date(dateStr);
console.log(dateObj.toUTCString()); // Tue, 24 Mar 1987 00:15:30 GMT

可以看到代碼中的「+08:00」是與UTC時間差值的表示方法之一。

四、ISO8601時間格式

在ISO8601中,時間格式可以包括小時、分、秒,也可以包括以豪秒、微秒或納秒為單位的小數部分。以下是時間格式的示例:

08:15:30                // 小時、分、秒
15:30:00.123            // 小時、分、秒和毫秒
15:30:00.123456        // 小時、分、秒和微秒
15:30:00.123456789    // 小時、分、秒和納秒

這種靈活性使得ISO8601在時間記錄的各種場合中得到了廣泛的應用。

五、ISO8601最新版

目前,ISO8601的最新版本是2019年發布的ISO 8601-1:2019,它提供了關於日期和時間表示的更多細節。

使用最新版的ISO8601規範來處理日期時間格式,可以在某些特殊的用途下取得更加精確的效果。

六、ISO8601時間轉化

在實際開發中,時常需要對用戶上傳的時間進行處理和轉化,ISO8601提供了相關的標準化方法:

// 將時間字元串轉換為ISO8601格式
const dateStr = '1987年3月25日';
const dateObj = new Date(dateStr);
const isoDateStr = dateObj.toISOString();
console.log(isoDateStr); // 1987-03-24T16:00:00.000Z

// 將ISO8601格式的時間字元串轉換為本地時間字元串
const isoDateStr = '1987-03-25T08:15:30Z';
const dateObj = new Date(isoDateStr);
const localDateStr = dateObj.toLocaleString();
console.log(localDateStr); // 1987/3/25 下午4:15:30

可以看到,使用ISO8601規範化的時間格式可以被輕鬆地轉換成通用的本地時間格式。

七、中國是否加入ISO8601

1992年,中國政府正式以GB/T 7408-1992標準引入了ISO8601的日期時間表示方式,使其成為了中國的國家標準。

因此,在中國使用ISO8601表示日期和時間已經是常態。

結語

ISO8601已被廣泛認可並應用於多個領域,特別是在開發中,它的強大和規範化足以解決各類日期和時間相關的問題。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/295972.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-27 12:57
下一篇 2024-12-27 12:57

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • 解決docker-compose 容器時間和伺服器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與伺服器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • Python獲取當前日期的多種方法

    本文介紹如何使用Python獲取當前日期,並提供了多種方法,包括使用datetime模塊、time模塊以及第三方庫dateutil等。讓我們一步一步來看。 一、使用datetime…

    編程 2025-04-29
  • 想把你和時間藏起來

    如果你覺得時間過得太快,每天都過得太匆忙,那麼你是否曾經想過想把時間藏起來,慢慢享受每一個瞬間?在這篇文章中,我們將會從多個方面,詳細地闡述如何想把你和時間藏起來。 一、一些時間管…

    編程 2025-04-28
  • Python按照日期畫折線圖

    本文將為您詳細介紹如何使用Python按照日期(時間)來畫折線圖。 一、準備工作 首先,我們需要安裝Matplotlib包,該包提供了各種繪圖函數,包括折線圖、柱形圖、散點圖等等。…

    編程 2025-04-28
  • 計算斐波那契數列的時間複雜度解析

    斐波那契數列是一個數列,其中每個數都是前兩個數的和,第一個數和第二個數都是1。斐波那契數列的前幾項為:1,1,2,3,5,8,13,21,34,…。計算斐波那契數列常用…

    編程 2025-04-28
  • 如何將視頻導出成更小的格式給IT前端文件

    本文將從以下幾個方面介紹如何將視頻導出成更小的格式,以便於在IT前端文件中使用。 一、選擇更小的視頻格式 在選擇視頻格式時,應該儘可能選擇更小的格式,如MP4、WebM、FLV等。…

    編程 2025-04-28
  • 時間戳秒級可以用int嗎

    時間戳是指從某個固定的時間點開始計算的已經過去的時間。在計算機領域,時間戳通常使用秒級或毫秒級來表示。在實際使用中,我們經常會遇到需要將時間戳轉換為整數類型的情況。那麼,時間戳秒級…

    編程 2025-04-28
  • 如何在ACM競賽中優化開發時間

    ACM競賽旨在提高程序員的演算法能力和解決問題的實力,然而在比賽中優化開發時間同樣至關重要。 一、規劃賽前準備 1、提前熟悉比賽規則和題目類型,了解常見演算法、數據結構和快速編寫代碼的…

    編程 2025-04-28

發表回復

登錄後才能評論