时间戳在编程中有着广泛的应用,例如记录事件的发生时间、计算时间间隔、处理时间数据等。时间戳通常以秒或毫秒为单位,自1970年1月1日(Unix纪元)以来的时间总数。本文将介绍几种主流开发语言中如何获取时间戳,包括PHP、Java、Golang、C#、JavaScript、Rust和Python。
文章目录
PHP 是一种广泛用于Web开发的服务器端脚本语言。获取当前时间戳在PHP中非常简单。
<?php
// 获取当前时间戳
$timestamp = time();
echo $timestamp;
?>
time()
函数返回当前的Unix时间戳,以秒为单位。System
类或Instant
类。// 使用System.currentTimeMillis()获取时间戳
long timestamp = System.currentTimeMillis();
System.out.println(timestamp);
// 使用Instant类获取时间戳
import java.time.Instant;
Instant now = Instant.now();
long timestamp = now.toEpochMilli();
System.out.println(timestamp);
System.currentTimeMillis()
返回自1970年1月1日以来的毫秒数,而Instant.now().toEpochMilli()
则使用了Java 8引入的新日期时间API。time
包。package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间戳(秒)
timestamp := time.Now().Unix()
fmt.Println(timestamp)
// 获取当前时间戳(毫秒)
timestampMilli := time.Now().UnixNano() / int64(time.Millisecond)
fmt.Println(timestampMilli)
}
time.Now().Unix()
返回当前的Unix时间戳,以秒为单位。time.Now().UnixNano()
返回纳秒时间戳,除以time.Millisecond
即可得到毫秒时间戳。C#
DateTime
或DateTimeOffset
类。using System;
class Program
{
static void Main()
{
// 使用DateTime获取时间戳
DateTimeOffset now = DateTimeOffset.UtcNow;
long timestamp = now.ToUnixTimeSeconds();
Console.WriteLine(timestamp);
// 使用DateTimeOffset获取时间戳(毫秒)
long timestampMilli = now.ToUnixTimeMilliseconds();
Console.WriteLine(timestampMilli);
}
}
DateTimeOffset.UtcNow.ToUnixTimeSeconds()
返回当前的Unix时间戳,以秒为单位。ToUnixTimeMilliseconds()
则返回以毫秒为单位的时间戳。Date
对象。// 获取当前时间戳(毫秒)
let timestamp = Date.now();
console.log(timestamp);
// 获取当前时间戳(秒)
let timestampSeconds = Math.floor(Date.now() / 1000);
console.log(timestampSeconds);
Date.now()
返回自1970年1月1日以来的毫秒数。除以1000并使用Math.floor()
可以得到以秒为单位的时间戳。std::time
模块。use std::time::{SystemTime, UNIX_EPOCH};
fn main() {
// 获取当前时间戳(秒)
let start = SystemTime::now();
let since_the_epoch = start.duration_since(UNIX_EPOCH)
.expect("Time went backwards");
let timestamp = since_the_epoch.as_secs();
println!("{}", timestamp);
// 获取当前时间戳(毫秒)
let timestamp_millis = since_the_epoch.as_millis();
println!("{}", timestamp_millis);
}
SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()
返回当前的Unix时间戳,以秒为单位。而as_millis()
则返回以毫秒为单位的时间戳。time
模块或datetime
模块。import time
from datetime import datetime
# 使用time模块获取时间戳(秒)
timestamp = time.time()
print(timestamp)
# 使用time模块获取时间戳(毫秒)
timestamp_milli = int(time.time() * 1000)
print(timestamp_milli)
# 使用datetime模块获取时间戳(秒)
timestamp_dt = datetime.now().timestamp()
print(timestamp_dt)
# 使用datetime模块获取时间戳(毫秒)
timestamp_dt_milli = int(datetime.now().timestamp() * 1000)
print(timestamp_dt_milli)
time.time()
返回当前的Unix时间戳,以秒为单位。乘以1000并转换为整数可以得到以毫秒为单位的时间戳。datetime.now().timestamp()
也返回秒级时间戳,处理方式相同。不同的编程语言都有自己获取时间戳的方法,但它们都基于同一个概念,即计算自Unix纪元以来的时间。无论是用于记录日志、处理时间数据还是执行时间计算,掌握获取时间戳的方法都是编程中的基本技能。