一、时间和时间戳的概念
时间是人们为了便于生活而制定的一种时间单位,它是可以被感知、计算、分割和记录的。时间戳是指从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的互相转化等。希望本文可以帮助大家更好地使用时间戳。