时间戳代码示例

在各种编程语言中获取、转换时间戳的代码示例

获取当前Unix时间戳

在不同编程语言中获取现在的Unix时间戳的方法

Language Code Action
PHP
<?php
echo time(); // 获取当前Unix时间戳
// 或
echo strtotime("now");
JavaScript
// 方法1: 毫秒级时间戳,除以1000得到秒级
Math.floor(Date.now() / 1000);

// 方法2: 秒级时间戳
new Date().getTime() / 1000;
Python
import time

# 秒级时间戳
int(time.time())

# 毫秒级时间戳
int(time.time() * 1000)
Java
import java.time.Instant;

// 秒级时间戳
long timestamp = Instant.now().getEpochSecond();

// 毫秒级时间戳
long timestampMillis = Instant.now().toEpochMilli();
C#
using System;

// Unix时间戳(秒)
long timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

// Unix时间戳(毫秒)
long timestampMillis = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // 秒级时间戳
    fmt.Println(time.Now().Unix())

    // 纳秒级时间戳
    fmt.Println(time.Now().UnixNano())
}
Ruby
# 秒级时间戳
Time.now.to_i

# 毫秒级时间戳
(Time.now.to_f * 1000).to_i
Node.js
// 秒级时间戳
Math.floor(Date.now() / 1000);

// 毫秒级时间戳
Date.now();
Bash/Shell
# 秒级时间戳
date +%s

# 毫秒级时间戳
date +%s%3N
Swift
import Foundation

// 秒级时间戳
let timestamp = Int(Date().timeIntervalSince1970)

// 毫秒级时间戳
let timestampMillis = Int(Date().timeIntervalSince1970 * 1000)

Unix时间戳转换为普通时间

在不同编程语言中实现Unix时间戳 → 普通时间

Language Code Action
PHP
<?php
$timestamp = 1704067200;

// 转换为日期时间
echo date("Y-m-d H:i:s", $timestamp);
// 输出: 2024-01-01 00:00:00

// 自定义格式
echo date("Y年m月d日 H时i分s秒", $timestamp);
// 输出: 2024年01月01日 00时00分00秒
JavaScript
const timestamp = 1704067200; // 秒级时间戳

// 转换毫秒级时间戳
const date = new Date(timestamp * 1000);

// 格式化日期时间
console.log(date.toLocaleString());
// 输出: 2024/1/1 00:00:00

// 自定义格式
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, "0");
const day = String(date.getDate()).padStart(2, "0");
const hours = String(date.getHours()).padStart(2, "0");
const minutes = String(date.getMinutes()).padStart(2, "0");
const seconds = String(date.getSeconds()).padStart(2, "0");
console.log(`-- ::`);
Python
import time
from datetime import datetime

timestamp = 1704067200

# 方法1: 使用time模块
print(time.ctime(timestamp))
# 输出: Mon Jan  1 00:00:00 2024

# 方法2: 使用datetime模块
dt = datetime.fromtimestamp(timestamp)
print(dt.strftime("%Y-%m-%d %H:%M:%S"))
# 输出: 2024-01-01 00:00:00
Java
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

long timestamp = 1704067200L;

// 转换为DateTime
Instant instant = Instant.ofEpochSecond(timestamp);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
    .withZone(ZoneId.systemDefault());

// 格式化输出
String formattedDate = formatter.format(instant);
System.out.println(formattedDate);
C#
using System;

long timestamp = 1704067200L;

// 转换为DateTime
DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;

// 格式化输出
Console.WriteLine(dateTime.ToString("yyyy-MM-dd HH:mm:ss"));
// 输出: 2024-01-01 00:00:00
Go
package main

import (
    "fmt"
    "time"
)

func main() {
    timestamp := int64(1704067200)

    // 转换为time.Time
    t := time.Unix(timestamp, 0)

    // 格式化输出
    fmt.Println(t.Format("2006-01-02 15:04:05"))
    // 输出: 2024-01-01 00:00:00
}
Ruby
timestamp = 1704067200

# 转换为Time对象
time = Time.at(timestamp)

# 格式化输出
puts time.strftime("%Y-%m-%d %H:%M:%S")
# 输出: 2024-01-01 00:00:00
Bash/Shell
timestamp=1704067200

# 转换为可读日期
date -d @$timestamp "+%Y-%m-%d %H:%M:%S"
# 输出: 2024-01-01 00:00:00

普通时间转换为Unix时间戳

在不同编程语言中实现普通时间 → Unix时间戳

Language Code Action
PHP
<?php
// 方法1: 使用strtotime
$timestamp1 = strtotime("2024-01-01 00:00:00");

// 方法2: 使用mktime
$timestamp2 = mktime(0, 0, 0, 1, 1, 2024);

echo $timestamp1; // 输出: 1704067200
JavaScript
// 创建日期对象
const date = new Date("2024-01-01 00:00:00");

// 获取秒级时间戳
const timestamp = Math.floor(date.getTime() / 1000);

console.log(timestamp); // 输出: 1704067200
Python
import time
from datetime import datetime

# 方法1: 使用time模块
timestamp1 = int(time.mktime(datetime(2024, 1, 1, 0, 0, 0).timetuple()))

# 方法2: 使用datetime模块
dt = datetime(2024, 1, 1, 0, 0, 0)
timestamp2 = int(dt.timestamp())

print(timestamp1) # 输出: 1704067200
Java
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;

// 创建LocalDateTime
LocalDateTime localDateTime = LocalDateTime.of(2024, 1, 1, 0, 0, 0);

// 转换为Instant(使用系统时区)
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();

// 获取Unix时间戳
long timestamp = instant.getEpochSecond();
System.out.println(timestamp);
C#
using System;

// 创建DateTime
DateTime dateTime = new DateTime(2024, 1, 1, 0, 0, 0, DateTimeKind.Utc);

// 转换为Unix时间戳
long timestamp = new DateTimeOffset(dateTime).ToUnixTimeSeconds();

Console.WriteLine(timestamp);
Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // 创建时间对象
    t := time.Date(2024, 1, 1, 0, 0, 0, 0, time.Local)

    // 获取Unix时间戳
    timestamp := t.Unix()

    fmt.Println(timestamp) // 输出: 1704067200
}
Ruby
# 创建Time对象
time = Time.new(2024, 1, 1, 0, 0, 0)

# 获取Unix时间戳
timestamp = time.to_i

puts timestamp # 输出: 1704067200
Bash/Shell
# 转换为Unix时间戳
date -d "2024-01-01 00:00:00" +%s

# 输出: 1704067200