时间戳转换工具-时间戳转日期-日期转时间戳


反馈错误

您的反馈将直接促进工具的改进,以更好地满足您的需求。提交反馈时,相关的数据将被用于分析和优化,我们承诺在优化完成后将删除这些数据。

什么是时间戳

时间戳是一种时间计量方式,它记录了从1970年1月1日UTC/GMT午夜起的秒数,以便于计算机系统能够以数字形式表示特定的时间点。 不过,这种表示方法并不直观,对于人类来说难以直接理解。 为了使时间信息更易于阅读和理解,通常需要将时间戳转换为更常见的日期和时间格式。 为此,我们提供了一个实用的工具,它能够高效地将时间戳转换为易于理解的日期和时间格式,同时也支持将日期和时间转换回时间戳。

各个编程语言获取当前时间戳、时间戳转日期、日期转时间戳的代码实现方式如下:

Python

import time
import datetime

# 获取时间戳
timestamp = time.time()

# 将时间戳格式化为字符串
formatted_date = datetime.datetime.fromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S")

# 将字符串转化为时间戳
new_timestamp = datetime.datetime.strptime(formatted_date, "%Y-%m-%d %H:%M:%S").timestamp()

Java

// 获取时间戳
long timestamp = System.currentTimeMillis();

// 将时间戳格式化为字符串
String formattedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(timestamp));

// 将字符串转化为时间戳
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(formattedDate);
long newTimestamp = date.getTime();

C++

#include <iostream>
#include <ctime>
#include <iomanip>

int main() {
    // 获取时间戳
    time_t now = time(0);
    long timestamp = now;

    // 将时间戳格式化为字符串
    std::tm *now_tm = std::localtime(&now);
    std::cout << std::put_time(now_tm, "%Y-%m-%d %H:%M:%S") << std::endl;

    // 将字符串转化为时间戳
    std::string formattedDate = "2024-09-16 21:53:57";
    std::istringstream ss(formattedDate);
    std::tm new_tm = {};
    ss >> std::get_time(&new_tm, "%Y-%m-%d %H:%M:%S");
    time_t newTimestamp = mktime(&new_tm);

    return 0;
}

C#

// 获取时间戳
long timestamp = DateTimeOffset.Now.ToUnixTimeSeconds();

// 将时间戳格式化为字符串
string formattedDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

// 将字符串转化为时间戳
DateTime date = DateTime.ParseExact(formattedDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
long newTimestamp = ((DateTimeOffset)date).ToUnixTimeSeconds();

JavaScript

// 获取时间戳
let timestamp = Date.now();

// 将时间戳格式化为字符串
let formattedDate = new Date(timestamp).toISOString().replace("T", " ").substring(0, 19);

// 将字符串转化为时间戳
let newTimestamp = new Date(formattedDate).getTime();

C语言

#include 
#include 

int main() {
    // 获取当前时间的时间戳
    time_t timestamp = time(NULL);
    printf("Current Timestamp: %ld\n", timestamp);

    // 转换时间戳为本地时间并格式化为字符串
    struct tm *tm_info = localtime(×tamp);
    char buffer[80];
    strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", tm_info);
    printf("Formatted Date: %s\n", buffer);

    // 将格式化的日期字符串转换回时间戳
    time_t new_timestamp = mktime(tm_info);
    printf("New Timestamp from Date String: %ld\n", new_timestamp);

    return 0;
}

Go

package main

import (
    "fmt"
    "time"
)

func main() {
    // 获取时间戳
    timestamp := time.Now().Unix()

    // 将时间戳格式化为字符串
    formattedDate := time.Now().Format("2006-01-02 15:04:05")

    // 将字符串转化为时间戳
    newTimestamp, _ := time.Parse("2006-01-02 15:04:05", formattedDate)
    fmt.Println("Timestamp:", timestamp)
    fmt.Println("Formatted Date:", formattedDate)
    fmt.Println("New Timestamp:", newTimestamp.Unix())
}

PHP

// 获取时间戳
$timestamp = time();

// 将时间戳格式化为字符串
$formattedDate = date("Y-m-d H:i:s", $timestamp);

// 将字符串转化为时间戳
$newTimestamp = strtotime($formattedDate);

Swift

import Foundation

// 获取时间戳
let timestamp = Int(Date().timeIntervalSince1970)

// 将时间戳格式化为字符串
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let formattedDate = formatter.string(from: Date(timeIntervalSince1970: TimeInterval(timestamp)))

// 将字符串转化为时间戳
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
if let date = formatter.date(from: formattedDate) {
    let newTimestamp = Int(date.timeIntervalSince1970)
}

Ruby

require "time"

# 获取当前时间的时间戳(秒)
timestamp = Time.now.to_i

# 将时间戳格式化为字符串
formatted_date = Time.at(timestamp).strftime("%Y-%m-%d %H:%M:%S")

# 输出格式化的日期字符串
puts "Formatted Date: #{formatted_date}"

# 将字符串转化为时间戳
new_timestamp = Time.strptime(formatted_date, "%Y-%m-%d %H:%M:%S").to_i

# 输出新的时间戳以验证
puts "New Timestamp from Date String: #{new_timestamp}"

Objective-C

// Objective-C 示例代码
NSDate *now = [NSDate date];
NSTimeInterval timestamp = [now timeIntervalSince1970];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *formattedDate = [formatter stringFromDate:now];

NSDate *newDate = [formatter dateFromString:formattedDate];
NSTimeInterval newTimestamp = [newDate timeIntervalSince1970];

Dart

DateTime now = DateTime.now();

// 获取时间戳
int timestamp = now.millisecondsSinceEpoch;

// 将时间戳格式化为字符串
String formattedDate = now.toIso8601String().replaceAll(":", "-").replaceAll(".", "-");

// 将字符串转化为时间戳
DateTime newDate = DateTime.parse(formattedDate);
int newTimestamp = newDate.millisecondsSinceEpoch;

Groovy

import java.text.SimpleDateFormat

// 获取时间戳
long timestamp = System.currentTimeMillis()

// 将时间戳格式化为字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
String formattedDate = sdf.format(new Date(timestamp))

// 将字符串转化为时间戳
Date date = sdf.parse(formattedDate)
long newTimestamp = date.time

Shell

# 获取时间戳
timestamp=$(date +%s)

# 将时间戳格式化为字符串
formattedDate=$(date -d @"$timestamp" +"%Y-%m-%d %H:%M:%S")

# 将字符串转化为时间戳
read newTimestamp < <(date -d "$formattedDate" +%s)

Lua

-- 获取时间戳
local timestamp = os.time()

-- 将时间戳格式化为字符串
local formattedDate = os.date("%Y-%m-%d %H:%M:%S", timestamp)

-- 将字符串转化为时间戳
local newTimestamp = os.time(formattedDate)

Perl

use POSIX qw(strftime);

# 获取时间戳
my $timestamp = time();

# 将时间戳格式化为字符串
my $formattedDate = strftime("%Y-%m-%d %H:%M:%S", localtime($timestamp));

# 将字符串转化为时间戳
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($formattedDate . " GMT");
$year += 1900;
$mon  += 1;
my $newTimestamp = timegm($sec,$min,$hour,$mday,$mon-1,$year);

VBScript / ASP

REM 获取时间戳
Dim timestamp
timestamp = DateDiff("s", "01/01/1970", Now())

REM 将时间戳格式化为字符串
Dim formattedDate
formattedDate = FormatDateTime(Now(), 3)

REM 将字符串转化为时间戳
Dim newTimestamp
newTimestamp = DateDiff("s", "01/01/1970", CDate(formattedDate))

Erlang

% 获取当前时间戳(秒)
Timestamp = erlang:system_time(second),
io:format("Current Timestamp: ~p~n", [Timestamp]).

% 将时间戳转换为日期字符串
FormattedDate = erlang:system_time_to_rfc3339(Timestamp, [{unit, second}]),
io:format("Formatted Date: ~s~n", [FormattedDate]).

% 将日期字符串转换回时间戳
{NewTimestamp, _} = erlang:rfc3339_to_system_time(FormattedDate),
io:format("New Timestamp from Date String: ~p~n", [NewTimestamp]).

评论

您可以在这里对时间戳转换工具提需求或者提bug。提交成功后自己可见,其他用户待审核通过后才可见。