UNIX 时间戳转换

分类:换算工具
UNIX 时间戳,是一种时间表示方式,是指从格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒起至当前时间的总秒数。UNIX 时间戳转换工具,可以把时间戳转换成以“年/月/日 时:分:秒”的可读形式;同时,也支持把可读时间转换成对应的 UNIX 时间戳。
当前 UNIX 时间戳:---
UNIX时间戳 → 北京时间 输入时间戳:
→ 北京时间:---
北京时间 → UNIX时间戳 输入日期和时间:
→ UNIX时间戳:---
工具介绍

Unix 时间戳

工具简介

Unix 时间戳(Unix timestamp),是一种时间表示方式,它表示从格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒起到当前时间的总秒数。

Unix 时间戳不仅被使用在 Unix 系统、类 Unix 系统中,也在许多其他操作系统中被广泛采用。因此,作为技术工程师,需要对时间戳的概念及相关用法做到心中有数,才能在使用时间戳时游刃有余。

说明:在不同时期,Unix 时间戳有时候也被称为 Unix 时间、POSIX 时间。

主流编程语言及操作系统获取 Unix 时间戳的方法

下面列出了目前主流编程语言及操作系统中获取 Unix 时间戳的方法,供参考。

1、Python

import time

# 获取当前时间戳(秒,浮点数)
timestamp = time.time()
print(timestamp)  # 输出示例: 1710705600.123456

# 获取整数秒
timestamp_int = int(time.time())
print(timestamp_int)  # 输出示例: 1710705600

2、JavaScript

// 获取当前时间戳(毫秒)
const timestamp = Date.now();
console.log(timestamp);  // 输出示例: 1710705600123

// 获取秒(转换为整数)
const timestampSeconds = Math.floor(Date.now() / 1000);
console.log(timestampSeconds);  // 输出示例: 1710705600

3、Java

import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        // 获取当前时间戳(秒)
        long timestamp = Instant.now().getEpochSecond();
        System.out.println(timestamp);  // 输出示例: 1710705600

        // 获取毫秒
        long timestampMillis = Instant.now().toEpochMilli();
        System.out.println(timestampMillis);  // 输出示例: 1710705600123
    }
}

4、C Lang

#include <stdio.h>
#include <time.h>

int main() {
    // 获取当前时间戳(秒)
    time_t timestamp = time(NULL);
    printf("%ld\n", timestamp);  // 输出示例: 1710705600
    return 0;
}

5、C++

#include <iostream>
#include <chrono>

int main() {
    // 获取当前时间戳(秒)
    auto timestamp = std::chrono::duration_cast<std::chrono::seconds>(
        std::chrono::system_clock::now().time_since_epoch()
    ).count();
    std::cout << timestamp << std::endl;  // 输出示例: 1710705600

    // 获取毫秒
    auto timestampMillis = std::chrono::duration_cast<std::chrono::milliseconds>(
        std::chrono::system_clock::now().time_since_epoch()
    ).count();
    std::cout << timestampMillis << std::endl;  // 输出示例: 1710705600123
    return 0;
}

6、PHP

<?php
// 获取当前时间戳(秒)
$timestamp = time();
echo $timestamp;  // 输出示例: 1710705600

// 或者使用 microtime 获取微秒
$microtime = microtime(true);
echo $microtime;  // 输出示例: 1710705600.123456
?>

7、.NET(C#)

using System;

class Program
{
    static void Main()
    {
        // 获取当前时间戳(秒)
        long timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
        Console.WriteLine(timestamp);  // 输出示例: 1710705600

        // 获取毫秒
        long timestampMillis = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
        Console.WriteLine(timestampMillis);  // 输出示例: 1710705600123
    }
}

8、Golang

package main

import (
    "fmt"
    "time"
)

func main() {
    // 获取当前时间戳(秒)
    timestamp := time.Now().Unix()
    fmt.Println(timestamp)  // 输出示例: 1710705600

    // 获取纳秒
    timestampNano := time.Now().UnixNano()
    fmt.Println(timestampNano)  // 输出示例: 1710705600123456789
}

9、Rust

use std::time::{SystemTime, UNIX_EPOCH};

fn main() {
    // 获取当前时间戳(秒)
    let timestamp = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .unwrap()
        .as_secs();
    println!("{}", timestamp);  // 输出示例: 1710705600

    // 获取毫秒
    let timestamp_millis = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .unwrap()
        .as_millis();
    println!("{}", timestamp_millis);  // 输出示例: 1710705600123
}

10、Ruby

# 获取当前时间戳(秒,浮点数)
timestamp = Time.now.to_f
puts timestamp  # 输出示例: 1710705600.123456

# 获取整数秒
timestamp_int = Time.now.to_i
puts timestamp_int  # 输出示例: 1710705600

表格总结如下:

编程语言获取时间戳的方法
Java(int) (System.currentTimeMillis() / 1000)
JavaScriptMath.round(new Date().getTime()/1000)
.NET / C#(int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds
Golangint32(time.Now().Unix())
PHPtime()
Perltime
Pythontime.time()
RubyTime.now.to_i
SwiftNSDate().timeIntervalSince1970
MySQLSELECT unix_timestamp(now())
PostgreSQLSELECT extract(epoch FROM now())
SQL ServerSELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
Unix / Linux / macosdate +%s

感谢使用,希望本工具对你有一定的帮助。