【日期、时间】计算机中日期、时间表示方法

88 篇文章 2 订阅
81 篇文章 1 订阅

前言

  • 从头捋捋,将时间捋明白。
  • 计算机使用的是UTC时间。这里的计算机可以理解为:操作系统、BIOS、CMOS、数据库等。

计算机中日期、时间表示方法

UNIX认为1970年1月1日0点是时间纪元,现在的计算机世界沿用此规则。

比如:Java中,Date类构造方法的注释中说“使用 GMT(同UTC) 1970年1月1日0点作为时间纪元”。

    /**
     * Allocates a <code>Date</code> object and initializes it to
     * represent the specified number of milliseconds since the
     * standard base time known as "the epoch", namely January 1,
     * 1970, 00:00:00 GMT.
     *
     * @param   date   the milliseconds since January 1, 1970, 00:00:00 GMT.
     * @see     java.lang.System#currentTimeMillis()
     */
    public Date(long date) {...}

JavaScript 示例

var d = new Date(0); // 0是距 UTC 时间1970年1月1日0点的毫秒数
console.log(d.toLocaleString()); // 显示成本地时间
console.log(d.toString());
console.log(d.toUTCString()); // 显示成UTC时间(世界时间)

执行结果:

1970/1/1 上午8:00:00
Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
Thu, 01 Jan 1970 00:00:00 GMT

说明:

  • 1970年1月1日0点是时间纪元。
  • 除了操作系统外,还有编程语言、BIOS、数据库,均用计算机代表。
  • 计算机使用的是UTC时间。系统时间指的就是这个。
  • 计算机中用数字表示UTC时间,该数字是距UTC时间1970年1月1日0点的毫秒数
  • 计算机将数字表示的UTC时间转化为人类可读的时间。在JavaScript中用toUTCString()获取。
  • 在JavaScript中toLocaleString()获取本地时区的本地时间。本地时区是由操作系统设置的。操作系统的时区设置成北京时间,就获得北京时间。上例中,数字0是UTC时间,运行代码的电脑设置的时区是北京时间,因此,toLocaleString()获得北京时间8点(此时的世界时间是0点)。
  • 计算机中GMT时间视同UTC时间。
  • 采用不同时区的数据进行数据交换时,最好采用标准时间格式(上例中输出的第1个时间无法在不同时区中进行数据交换)。

参考

计算机系统的时间
日期类的时间从为什么是从1970年1月1日
UTC
javascript字符串转日期类型
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值