什么是时间戳
时间戳是一种时间计量方式,它记录了从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。提交成功后自己可见,其他用户待审核通过后才可见。
您暂未登录
必须登录后才能使用评论功能(评论、点赞、回复、删除等),请
点击跳转登录
。首次评论仅自己可见,待管理员审核通过后,才会对外发布。