/52 周数
自 1970 年 1 月 1 日以来的秒数 (UTC)

时间戳与日期转换

常用时间戳

时间点日期字符串时间戳

日期转时间戳

常见问题

Q

什么是时间戳?

时间戳是一串用于标识事件发生时间的字符或编码信息。它通常包含日期和时间,可以精确到秒的小数部分。时间戳不一定要基于绝对时间,它可以相对于任意时间点,比如系统启动时间。

Q

时间戳有哪些类型?

主要有三种类型的时间标记: - 日期戳(DS):仅显示日期(如:2024-11-15) - 时间戳(TS):仅显示时间(如:20:07:20) - 日期时间戳(DTS):同时显示日期和时间(如:2024-11-15, 20:07:20)

Q

计算机中如何使用时间戳?

在计算机领域,时间戳有多种用途: - 文件系统:记录文件的创建、修改和访问时间 - 数码相机:记录照片拍摄时间 - 日志系统:记录事件发生时间 - 版本控制:追踪更改时间 - 数据库系统:管理数据时序和同步

Q

时间戳的标准格式是什么?

ISO 8601 是表示日期和时间的国际标准。常见格式包括: - 2024-11-15T20:07:20Z(ISO 8601格式) - 2024-11-15 20:07:20(常用格式) - 1256953732(Unix时间戳) 其中'Z'后缀表示UTC时区。

Q

什么是Unix时间戳?

Unix时间戳表示从1970年1月1日00:00:00 UTC(Unix纪元)开始经过的秒数。它在计算机领域广泛使用,因为它简单、明确,且易于程序处理。

Q

为什么时间戳很重要?

时间戳在以下方面起着关键作用: - 事件排序和顺序确定 - 数据同步 - 审计跟踪和日志记录 - 文件管理 - 版本控制 - 数据库事务 - 数字签名和证书

Q

时间戳会不准确吗?

是的,时间戳可能因以下原因不准确: - 系统时钟错误 - 时区配置错误 - 夏令时转换 - 网络时间同步问题 - 手动日期/时间更改 当准确性很重要时,需要验证时间戳。

Q

文件系统如何使用时间戳?

现代文件系统通常为每个文件存储三种时间戳: - 访问时间(atime):文件最后被访问的时间 - 修改时间(mtime):文件内容最后被修改的时间 - 变更时间(ctime):文件元数据最后被更改的时间

编程语言中的时间戳

不同编程语言获取当前Unix时间戳的方法

编程语言代码示例
Python
# Method 1: Using time
import time
timestamp = int(time.time())

# Method 2: Using datetime
from datetime import datetime
timestamp = int(datetime.now().timestamp())
JavaScript
// Method 1: Using Date.now()
const timestamp = Math.floor(Date.now() / 1000);

// Method 2: Using new Date()
const timestamp = Math.floor(new Date().getTime() / 1000);
Java
// Method 1: Using System
long timestamp = System.currentTimeMillis() / 1000L;

// Method 2: Using Instant
long timestamp = Instant.now().getEpochSecond();
C++
// Method 1: Using chrono (C++11 and later)
#include <chrono>
auto timestamp = std::chrono::system_clock::now().time_since_epoch() / 
    std::chrono::seconds(1);

// Method 2: Using time.h
#include <time.h>
time_t timestamp = time(nullptr);
C
#include <time.h>

time_t timestamp = time(NULL);  // or time(0)
Go
// Method 1: Unix timestamp
timestamp := time.Now().Unix()

// Method 2: UnixNano for higher precision
timestampNano := time.Now().UnixNano() / 1e9
Rust
// Method 1: Using SystemTime
use std::time::{SystemTime, UNIX_EPOCH};
let timestamp = SystemTime::now()
    .duration_since(UNIX_EPOCH)
    .unwrap()
    .as_secs();

// Method 2: Using time crate
use time::OffsetDateTime;
let timestamp = OffsetDateTime::now_utc().unix_timestamp();
PHP
// Method 1: Using time()
$timestamp = time();

// Method 2: Using strtotime()
$timestamp = strtotime('now');

// Method 3: Using DateTime
$timestamp = (new DateTime())->getTimestamp();
C#
// Method 1: Using DateTimeOffset
long timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

// Method 2: Using DateTime
long timestamp = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeSeconds();
Ruby
# Method 1: Using Time
timestamp = Time.now.to_i

# Method 2: Using DateTime
require 'date'
timestamp = DateTime.now.to_time.to_i
Swift
// Method 1: Using Date
let timestamp = Int(Date().timeIntervalSince1970)

// Method 2: Using TimeInterval
let timestamp = Int(Date.timeIntervalSinceReferenceDate + Date.timeIntervalBetween1970AndReferenceDate)
Kotlin
// Method 1: Using System
val timestamp = System.currentTimeMillis() / 1000L

// Method 2: Using Instant
import java.time.Instant
val timestamp = Instant.now().epochSecond
R
# Method 1: Using Sys.time()
timestamp <- as.integer(Sys.time())

# Method 2: Using as.POSIXct
timestamp <- as.integer(as.POSIXct(Sys.time()))
MATLAB
% Method 1: Using posixtime
timestamp = posixtime(datetime('now'));

% Method 2: Using now
timestamp = round((now - datenum('1970-01-01')) * 86400);
Perl
# Method 1: Using time
my $timestamp = time();

# Method 2: Using Time::HiRes for higher precision
use Time::HiRes qw(time);
my $timestamp = int(time());
Scala
// Method 1: Using System
val timestamp = System.currentTimeMillis() / 1000L

// Method 2: Using Instant
import java.time.Instant
val timestamp = Instant.now.getEpochSecond
TypeScript
// Method 1: Using Date.now()
const timestamp: number = Math.floor(Date.now() / 1000);

// Method 2: Using new Date()
const timestamp: number = Math.floor(new Date().getTime() / 1000);
Dart
// Method 1: Using DateTime
int timestamp = DateTime.now().millisecondsSinceEpoch ~/ 1000;

// Method 2: Using DateTime.timestamp
int timestamp = DateTime.timestamp().millisecondsSinceEpoch ~/ 1000;
Lua
-- Method 1: Using os.time()
local timestamp = os.time()

-- Method 2: Using os.date
local timestamp = os.date("*t")
SQL
-- MySQL
SELECT UNIX_TIMESTAMP();

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM CURRENT_TIMESTAMP)::INTEGER;

-- SQLite
SELECT strftime('%s', 'now');

-- SQL Server
SELECT DATEDIFF(SECOND, '1970-01-01', GETUTCDATE());
Delphi
// Method 1: Using DateTimeToUnix
timestamp := DateTimeToUnix(Now);

// Method 2: Using TDateTime
uses DateUtils;
timestamp := DateTimeToUnix(TDateTime.Now);
VB.NET
' Method 1: Using DateTimeOffset
Dim timestamp As Long = DateTimeOffset.UtcNow.ToUnixTimeSeconds()

' Method 2: Using DateTime
Dim timestamp As Long = CLng((DateTime.UtcNow - New DateTime(1970, 1, 1)).TotalSeconds)
Groovy
// Method 1: Using System
def timestamp = System.currentTimeMillis() / 1000L

// Method 2: Using Instant
import java.time.Instant
def timestamp = Instant.now().epochSecond
Haskell
-- Method 1: Using getPOSIXTime
import Data.Time.Clock.POSIX
timestamp <- round <$> getPOSIXTime

-- Method 2: Using UTCTime
import Data.Time.Clock
timestamp <- round . utcTimeToPOSIXSeconds <$> getCurrentTime