时间戳转换

当前时间戳:
当前时间:

时间戳

Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

夏令时

1986年至1991年,中华人民共和国在全国范围实行了六年夏令时,每年从4月中旬的第一个星期日2时整(北京时间)到9月中旬第一个星期日的凌晨2时整(北京夏令时)。 除1986年因是实行夏令时的第一年,从5月4日开始到9月14日结束外,其它年份均按规定的时段施行。夏令时实施期间,将时间向后调快一小时。1992年4月5日后不再实行。

JDK 不同版本的夏令时问题

夏令时的起止,是政令对日历描述的人为干预。每年均可能发生变化,JDK 如何感知这个规律并在系统上加以体现的?穷举所有变化,并配置在 JDK 中。详见: Timezone Data Versions in the JRE Software

不同版本下 Asia/Shanghai 时区夏令时起始时间不同,早期维护者认为中国标准时间的夏令时切换发生在0时,而后来又经证明发生在2时,新版本 JDK 及时修正了这个问题。

获取当前时间戳

Swift

    NSDate().timeIntervalSince1970

Go

    import (
        "time"
    )
    int64(time.Now().Unix())

Java

    // pure java
    System.currentTimeMillis() / 1000
    // joda java
    DateTime.now().getMillis() / 1000

JavaScript

    Math.round(new Date() / 1000)

Objective-C

    [[NSDate date] timeIntervalSince1970]

MySQL

    SELECT unix_timestamp(now())

SQLite

    SELECT strftime('%s', 'now')

Erlang

    calendar:datetime_to_gregorian_seconds(calendar:universal_time())-719528*24*3600.

PHP

    <?php
    // pure php
    time();
    ?>
    <?php
    // carbon php
    use Carbon\Carbon;
    Carbon::now()->timestamp;
    ?>

Python

    import time
    time.time()
    import arrow
    arrow.utcnow().timestamp

Ruby

    Time.now.to_i

Shell

    date +%s

Groovy

    (new Date().time / 1000).longValue()

Lua

    os.time()

.NET/C#

    (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000

Dart

    (new DateTime.now().millisecondsSinceEpoch / 1000).truncate()