一、時間和時間戳的概念
時間是人們為了便於生活而制定的一種時間單位,它是可以被感知、計算、分割和記錄的。時間戳是指從1970年1月1日0時0分0秒(UTC)開始的計時單位,一般用整數表示,可以直接用於計算時間間隔等操作。時間戳是計算機通常使用的時間表示方式之一。
時間戳通常是時間類型的一種表示形式,很多編程語言都有對應的時間戳類型,如Java中的java.util.Date
、Python中的datetime
等。在實際編程中,我們常常需要將時間戳轉化為特定格式的字元串,方便人們閱讀和使用。
二、將timestamp轉化為格式化的字元串
將時間戳轉化為格式化的字元串是常見的需求,具體的轉化方法因編程語言而異。下面以JavaScript為例介紹如何將時間戳轉化為字元串。
// 定義一個時間戳
const timestamp = 1625936100000;
// 使用Date構造函數將時間戳轉化為日期對象
const date = new Date(timestamp);
// 使用toLocaleString方法將日期對象轉化為格式化的字元串
const formattedString = date.toLocaleString();
console.log(formattedString); // 輸出:2021/7/10 下午11:08:20
上面的代碼中,我們首先定義了一個時間戳timestamp
,然後使用Date
構造函數將時間戳轉化為日期對象date
,再使用toLocaleString()
方法將日期對象轉化為格式化的字元串formattedString
。
三、指定格式將timestamp轉化為字元串
有時候,我們需要將時間戳按照特定的格式轉化為字元串,如只顯示日期、只顯示時間、顯示中文日期等。下面以JavaScript為例,介紹如何按照指定的格式將時間戳轉化為字元串。
1、只顯示日期
// 定義一個時間戳
const timestamp = 1625936100000;
// 使用Date構造函數將時間戳轉化為日期對象
const date = new Date(timestamp);
// 獲取年月日
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
// 拼接為格式化的日期字元串
const formattedString = `${year}-${month < 10 ? '0'+month : month}-${day < 10 ? '0' + day : day}`;
console.log(formattedString); // 輸出:2021-07-10
上面的代碼中,我們首先定義了一個時間戳timestamp
,然後使用Date
構造函數將時間戳轉化為日期對象date
,再獲取年月日並拼接為格式化的日期字元串formattedString
。
2、只顯示時間
// 定義一個時間戳
const timestamp = 1625936100000;
// 使用Date構造函數將時間戳轉化為日期對象
const date = new Date(timestamp);
// 獲取時分秒
const hour = date.getHours();
const minute = date.getMinutes();
const second = date.getSeconds();
// 拼接為格式化的時間字元串
const formattedString = `${hour < 10 ? '0'+hour : hour}:${minute < 10 ? '0'+minute : minute}:${second < 10 ? '0'+second : second}`;
console.log(formattedString); // 輸出:23:08:20
上面的代碼中,我們首先定義了一個時間戳timestamp
,然後使用Date
構造函數將時間戳轉化為日期對象date
,再獲取時分秒並拼接為格式化的時間字元串formattedString
。
3、顯示中文日期
// 定義一個時間戳
const timestamp = 1625936100000;
// 使用Date構造函數將時間戳轉化為日期對象
const date = new Date(timestamp);
// 獲取年月日
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
// 定義中文月份
const months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
// 拼接為格式化的中文日期字元串
const formattedString = `${year}年${months[month-1]}${day}日`;
console.log(formattedString); // 輸出:2021年七月10日
上面的代碼中,我們首先定義了一個時間戳timestamp
,然後使用Date
構造函數將時間戳轉化為日期對象date
,再獲取年月日並拼接為格式化的中文日期字元串formattedString
。
四、字元串和timestamp的互相轉化
當我們在編程中使用時間時,可能需要將字元串類型的時間轉化為時間戳,或者將時間戳轉化為特定格式的字元串。下面以JavaScript為例,介紹如何進行轉化。
1、將字元串轉化為timestamp
// 定義一個格式化的日期字元串
const dateString = '2021-07-10';
// 使用Date.parse方法將字元串轉化為timestamp
const timestamp = Date.parse(dateString);
console.log(timestamp); // 輸出:1625856000000
上面的代碼中,我們首先定義了一個格式化的日期字元串dateString
,然後使用Date.parse()
方法將字元串轉化為timestamp。
2、將timestamp轉化為指定格式的字元串
// 定義一個時間戳
const timestamp = 1625936100000;
// 使用Date構造函數將時間戳轉化為日期對象
const date = new Date(timestamp);
// 定義日期格式化函數
function format(date, fmt) {
const o = {
"M+": date.getMonth() + 1, // 月份
"d+": date.getDate(), // 日
"h+": date.getHours(), // 小時
"m+": date.getMinutes(), // 分
"s+": date.getSeconds(), // 秒
"q+": Math.floor((date.getMonth() + 3) / 3), // 季度
"S": date.getMilliseconds() // 毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (let k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
// 按照指定格式將日期轉化為字元串
const formattedString = format(date, 'yyyy/MM/dd hh:mm:ss');
console.log(formattedString); // 輸出:2021/07/10 23:08:20
上面的代碼中,我們首先定義了一個時間戳timestamp
,然後使用Date
構造函數將時間戳轉化為日期對象date
,再定義一個日期格式化函數format
,最後調用函數將日期轉化為指定格式的字元串。
五、總結
本文以JavaScript為例,詳細介紹了如何將timestamp轉化為字元串,並從多個方面進行闡述,包括格式化、指定格式轉化、字元串和timestamp的互相轉化等。希望本文可以幫助大家更好地使用時間戳。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/154382.html