引言
在程序开发中我们常常会遇到时间戳这种数据类型,时间戳是指格林威治时间1970年01月01日00时00分00秒到现在时间的总秒数。而由于时间戳格式不易于阅读,因此将时间戳转换为人们易于阅读的日期和时间格式非常必要。本篇文章将介绍多种语言如何将时间戳转换为人们易于阅读的日期和时间格式。
正文
一、时间戳转为时间格式
首先,我们需要定义一个时间戳,如下所示:
long timeStamp = 1574738800000L;
注意:时间戳的数据类型一般为long型,在Java中需要在数字后面加L来表示。
然后我们可以使用Java中的SimpleDateFormat类将时间戳转换为时间格式:
import java.text.SimpleDateFormat; import java.util.Date; public class TimeStampDemo { public static void main(String[] args) { long timeStamp = 1574738800000L; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(new Date(timeStamp)); System.out.println(format); } }
输出结果为:
2019-11-26 08:20:00
这样我们就将时间戳成功地转换成了易于阅读的时间格式。
二、SQL将时间戳转为时间
在MySQL数据库中,我们可以使用FROM_UNIXTIME函数将时间戳转换为时间格式。FROM_UNIXTIME函数原型为:
FROM_UNIXTIME(unix_timestamp); FROM_UNIXTIME(unix_timestamp,format);
其中,unix_timestamp为一个数字,表示要转换为时间格式的时间戳。
format为可选参数,表示转换后的时间格式,默认为"%Y-%m-%d %H:%i:%s"。常用的时间格式如下:
标签 | 意义 |
---|---|
%Y | 年份,四位数 |
%m | 月份,两位数 |
%d | 日期,两位数 |
%H | 小时,两位数 |
%i | 分钟,两位数 |
%s | 秒数,两位数 |
示例:
SELECT FROM_UNIXTIME(1574738800,'%Y-%m-%d %H:%i:%s');
输出结果为:
2019-11-26 08:20:00
三、JS将时间戳转为日期
在JavaScript中,我们可以使用Date对象的构造函数将时间戳转换为日期格式:
var timeStamp = 1574738800000; var date = new Date(timeStamp); console.log(date);
输出结果为:
Tue Nov 26 2019 08:20:00 GMT+0800 (中国标准时间)
需要注意的是,在JS中的时间戳一般是精确到毫秒级别的,因此需要将时间戳除以1000来得到以秒为单位的时间戳。同时,JS中也提供了一些函数来将日期格式转换为字符串格式,如下所示:
var timeStamp = 1574738800000; var date = new Date(timeStamp); console.log(date.toLocaleString()); // 2019/11/26 下午8:20:00 console.log(date.toDateString()); // Tue Nov 26 2019 console.log(date.toTimeString()); // 20:20:00 GMT+0800 (中国标准时间)
四、10位时间戳转为时间
与13位时间戳不同,10位时间戳只表示精确到秒的时间,因此需要特别处理。以Java为例,我们可以将精确到秒的时间戳扩大1000倍之后再进行转换,如下所示:
long timeStamp = 1574738800; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(new Date(timeStamp * 1000)); System.out.println(format);
输出结果为:
2019-11-26 08:20:00
五、C#时间转为时间戳
在C#中,我们可以使用DateTime对象的ToUnixTimeSeconds方法将时间转换为时间戳:
DateTime dateTime = new DateTime(2019, 11, 26, 8, 20, 0); long timeStamp = (long)(dateTime.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; Console.WriteLine(timeStamp);
输出结果为:
1574738800
六、时间戳转为天数
将时间戳转为天数非常简单,只需要将时间戳除以24小时(即86400秒)即可:
long timeStamp = 1574738800000L; int days = (int) (timeStamp / 86400000); System.out.println(days);
输出结果为:
18248
七、时间戳转为秒JS
在JS中,将时间戳转换为秒数只需要将时间戳除以1000即可:
var timeStamp = 1574738800000; var seconds = Math.round(timeStamp / 1000); console.log(seconds);
输出结果为:
1574738800
八、MySQL将时间转为时间戳
与将时间戳转为时间类似,在MySQL中我们也可以使用UNIX_TIMESTAMP函数将时间转换为时间戳。UNIX_TIMESTAMP函数原型为:
UNIX_TIMESTAMP(); UNIX_TIMESTAMP(date);
其中,date为可选参数,表示要转换为时间戳的日期。如果不传递参数,则默认为当前时间。
示例:
SELECT UNIX_TIMESTAMP('2019-11-26 08:20:00');
输出结果为:
1574738800
结语
本篇文章介绍了多种语言如何将时间戳转换为人们易于阅读的日期和时间格式。无论是Java、SQL、JS、C#还是MySQL,都提供了很方便的时间格式转换函数,开发者们可以根据自己的需求进行选择。最后,希望本篇文章对大家能够有所帮助。