開発者リソース&コードスニペット
各プログラミング言語で Unix タイムスタンプを扱うためのコード例を掲載しています。下の言語から選択してください。
言語別Unixタイムスタンプスニペット
各プログラミング言語で Unix タイムスタンプを扱うためのコード例を掲載しています。下の言語から選択してください。
関連ツール: Epoch 変換er, Date 変換er, Locale 変換er, Locale 変換er Guide, Unix ms to Date, タイムゾーン変換
よくある質問
How do I get the current Unix timestamp in JavaScript? Use Math.floor(Date.now() / 1000) for Unix seconds or Date.now() for Unix milliseconds in JavaScript.
How do I convert epoch to datetime in Python, PHP, or SQL? Use the language-specific examples on this page to parse Unix timestamps into UTC or local datetime output for debugging, APIs, and database work.
What is the difference between Unix seconds and Unix milliseconds in code? Unix seconds are usually 10 digits and are common in backend systems. Unix milliseconds are usually 13 digits and are common in JavaScript, analytics, and browser events.
現在のタイムスタンプを取得
// Get current Unix timestamp (seconds)
const timestampIn秒 = Math.floor(Date.now() / 1000);
console.log(timestampIn秒);
// Get current Unix timestamp (milliseconds)
const timestampInミリ秒 = Date.now();
console.log(timestampInミリ秒);
タイムスタンプを日付に変換
// 変換 Unix timestamp to date
const timestamp = 1609459200; // 2021-01-01 00:00:00 UTC
const date = new Date(timestamp * 1000);
console.log(date.toISOString()); // "2021-01-01T00:00:00.000Z"
console.log(date.toLocaleString()); // Localized format
日付をタイムスタンプに変換
// 変換 date string to Unix timestamp
const dateString = '2021-01-01T00:00:00Z';
const timestamp = Math.floor(new Date(dateString).getTime() / 1000);
console.log(timestamp); // 1609459200
// 変換 Date object to Unix timestamp
const date = new Date(2021, 0, 1); // メモ: か月 start at 0
const timestampFromDate = Math.floor(date.getTime() / 1000);
console.log(timestampFromDate);
メモ:
JavaScript の Date.now() はミリ秒を返します。秒にするには 1000 で割ってください。
秒から Date オブジェクトに変換する場合は 1000 を掛けます。
現在のタイムスタンプを取得
import time
import datetime
# Get current Unix timestamp (seconds)
timestamp_seconds = int(time.time())
print(timestamp_seconds)
# Get current Unix timestamp (milliseconds)
timestamp_milliseconds = int(time.time() * 1000)
print(timestamp_milliseconds)
# Using datetime
dt = datetime.datetime.now()
timestamp_from_datetime = int(dt.timestamp())
print(timestamp_from_datetime)
タイムスタンプを日付に変換
import time
import datetime
# 変換 Unix timestamp to date
timestamp = 1609459200 # 2021-01-01 00:00:00 UTC
# Using time module
date_str = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(timestamp))
print(date_str) # '2021-01-01 00:00:00'
# Using datetime module
date_obj = datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone.utc)
print(date_obj.strftime('%Y-%m-%d %H:%M:%S')) # '2021-01-01 00:00:00'
日付をタイムスタンプに変換
import datetime
# 変換 date string to Unix timestamp
date_string = '2021-01-01 00:00:00'
date_obj = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
# 変換 to timestamp (assumes local timezone)
timestamp = int(date_obj.timestamp())
print(timestamp)
# Explicitly specify UTC timezone
date_obj_utc = date_obj.replace(tzinfo=datetime.timezone.utc)
timestamp_utc = int(date_obj_utc.timestamp())
print(timestamp_utc)
メモ:
Python の time.time() は浮動小数点の秒を返します。整数秒には int() を使います。
タイムゾーン処理では、より堅牢なサポートのために pytz ライブラリの使用を検討してください。
現在のタイムスタンプを取得
import java.time.Instant;
public class TimestampExample {
public static void main(String[] args) {
// Get current Unix timestamp (seconds)
long timestampIn秒 = Instant.now().getEpochSecond();
System.out.println(timestampIn秒);
// Get current Unix timestamp (milliseconds)
long timestampInミリ秒 = Instant.now().toEpochMilli();
System.out.println(timestampInミリ秒);
// Traditional method
long currentTimeMillis = System.currentTimeMillis();
long timestamp秒 = currentTimeMillis / 1000L;
System.out.println(timestamp秒);
}
}
タイムスタンプを日付に変換
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class TimestampToDateExample {
public static void main(String[] args) {
// 変換 Unix timestamp to date
long timestamp = 1609459200L; // 2021-01-01 00:00:00 UTC
// Using Instant and formatter
Instant instant = Instant.ofEpochSecond(timestamp);
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd HH:mm:ss")
.withZone(ZoneId.of("UTC"));
String formattedDate = formatter.format(instant);
System.out.println(formattedDate); // "2021-01-01 00:00:00"
}
}
日付をタイムスタンプに変換
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class DateToTimestampExample {
public static void main(String[] args) {
// 変換 date string to Unix timestamp
String dateString = "2021-01-01 00:00:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// Parse and convert to timestamp (assuming UTC)
LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
ZonedDateTime zonedDateTime = dateTime.atZone(ZoneId.of("UTC"));
long timestamp = zonedDateTime.toEpochSecond();
System.out.println(timestamp); // 1609459200
}
}
メモ:
Java 8+ では、より優れた日時処理を行う java.time パッケージが導入されました。
UTC タイムスタンプには Instant、タイムゾーン対応の処理には ZonedDateTime を使用します。
現在のタイムスタンプを取得
<?php
// Get current Unix timestamp (seconds)
$timestampIn秒 = time();
echo $timestampIn秒;
// Get current Unix timestamp (milliseconds)
$timestampInミリ秒 = round(microtime(true) * 1000);
echo $timestampInミリ秒;
// Using DateTime class
$dateTime = new DateTime();
$timestampFromDateTime = $dateTime->getTimestamp();
echo $timestampFromDateTime;
?>
タイムスタンプを日付に変換
<?php
// 変換 Unix timestamp to date
$timestamp = 1609459200; // 2021-01-01 00:00:00 UTC
// Using date function (local timezone)
$dateFormatted = date('Y-m-d H:i:s', $timestamp);
echo $dateFormatted;
// Using gmdate for UTC
$dateFormattedUTC = gmdate('Y-m-d H:i:s', $timestamp);
echo $dateFormattedUTC; // "2021-01-01 00:00:00"
// Using DateTime class
$dateTime = new DateTime("@$timestamp");
$dateTime->setTimezone(new DateTimeZone('UTC'));
echo $dateTime->format('Y-m-d H:i:s');
?>
日付をタイムスタンプに変換
<?php
// 変換 date string to Unix timestamp
$dateString = '2021-01-01 00:00:00';
// Using strtotime (assumes local timezone)
$timestamp = strtotime($dateString);
echo $timestamp;
// Specify UTC timezone
$timestampUTC = strtotime($dateString . ' UTC');
echo $timestampUTC;
// Using DateTime class with timezone
$dateTime = new DateTime($dateString, new DateTimeZone('UTC'));
$timestamp = $dateTime->getTimestamp();
echo $timestamp; // 1609459200
?>
メモ:
PHP の time() は秒を返します。小数秒には microtime(true) を使用します。
date() と strtotime() を使用する際は、タイムゾーン設定に注意してください。
現在のタイムスタンプを取得
package main
import (
"fmt"
"time"
)
func main() {
// Get current Unix timestamp (seconds)
timestampIn秒 := time.Now().Unix()
fmt.Println(timestampIn秒)
// Get current Unix timestamp (milliseconds)
// UnixMilli() requires Go 1.17+, using UnixNano() for better compatibility
timestampInミリ秒 := time.Now().UnixNano() / int64(time.Millisecond)
fmt.Println(timestampInミリ秒)
}
タイムスタンプを日付に変換
package main
import (
"fmt"
"time"
)
func main() {
// 変換 Unix timestamp to date
timestamp := int64(1609459200) // 2021-01-01 00:00:00 UTC
// Create time object
t := time.Unix(timestamp, 0)
// Format date (UTC)
fmt.Println(t.UTC().Format("2006-01-02 15:04:05"))
// Format date (local timezone)
fmt.Println(t.Format("2006-01-02 15:04:05"))
}
日付をタイムスタンプに変換
package main
import (
"fmt"
"time"
)
func main() {
// 変換 date string to Unix timestamp
dateString := "2021-01-01 00:00:00"
// Parse date string (assuming UTC)
// Go uses the reference time "2006-01-02 15:04:05" for time formatting layouts
t, err := time.Parse("2006-01-02 15:04:05", dateString)
if err != nil {
fmt.Println(err)
return
}
// Get Unix timestamp
timestamp := t.Unix()
fmt.Printf("Timestamp: %d\n", timestamp) // 1609459200
}
メモ:
Go は時刻フォーマットのレイアウトに基準時刻 "2006-01-02 15:04:05" を使用します。
秒には time.Now().Unix()、ミリ秒には time.Now().UnixMilli() を使用します (Go 1.17+)。
現在のタイムスタンプを取得
using System;
class Program
{
static void Main()
{
// Get current Unix timestamp (seconds)
DateTimeOffset now = DateTimeOffset.UtcNow;
long timestampIn秒 = now.ToUnixTime秒();
Console.WriteLine(timestampIn秒);
// Get current Unix timestamp (milliseconds)
long timestampInミリ秒 = now.ToUnixTimeミリ秒();
Console.WriteLine(timestampInミリ秒);
// Alternative method for older .NET versions
DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
TimeSpan timeSpan = DateTime.UtcNow - unixEpoch;
long timestamp秒Alt = (long)timeSpan.Total秒;
Console.WriteLine(timestamp秒Alt);
}
}
タイムスタンプを日付に変換
using System;
class Program
{
static void Main()
{
// 変換 Unix timestamp to date
long timestamp = 1609459200; // 2021-01-01 00:00:00 UTC
// Using DateTimeOffset (.NET Standard 2.0+)
DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTime秒(timestamp);
Console.WriteLine(dateTimeOffset.ToString("yyyy-MM-dd HH:mm:ss")); // UTC
// 変換 to local time
DateTimeOffset localTime = dateTimeOffset.ToLocalTime();
Console.WriteLine(localTime.ToString("yyyy-MM-dd HH:mm:ss")); // Local
}
}
日付をタイムスタンプに変換
using System;
using System.Globalization;
class Program
{
static void Main()
{
// 変換 date string to Unix timestamp
string dateString = "2021-01-01 00:00:00";
// Parse date string (assume UTC)
DateTime dateTime = DateTime.ParseExact(
dateString,
"yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
// 変換 to timestamp
DateTimeOffset dateTimeOffset = new DateTimeOffset(dateTime);
long timestamp = dateTimeOffset.ToUnixTime秒();
Console.WriteLine($"Timestamp: {timestamp}"); // 1609459200
}
}
メモ:
.NET Standard 2.0+ では Unix タイムスタンプ操作に DateTimeOffset を使用します。
DateTime オブジェクトを扱うときは DateTimeKind に注意してください。
現在のタイムスタンプを取得
# Get current Unix timestamp (seconds)
timestamp_seconds = Time.now.to_i
puts timestamp_seconds
# Get current Unix timestamp (milliseconds)
timestamp_milliseconds = (Time.now.to_f * 1000).to_i
puts timestamp_milliseconds
# Get current UTC timestamp
require 'time'
utc_timestamp = Time.now.utc.to_i
puts utc_timestamp
タイムスタンプを日付に変換
require 'time'
# 変換 Unix timestamp to date
timestamp = 1609459200 # 2021-01-01 00:00:00 UTC
# Create Time object (local timezone)
time = Time.at(timestamp)
puts time.strftime('%Y-%m-%d %H:%M:%S')
# Create UTC Time object
time_utc = Time.at(timestamp).utc
puts time_utc.strftime('%Y-%m-%d %H:%M:%S') # "2021-01-01 00:00:00"
# ISO 8601 format
puts time_utc.iso8601
日付をタイムスタンプに変換
require 'time'
# 変換 date string to Unix timestamp
date_string = '2021-01-01 00:00:00'
# Parse date string (local timezone)
time = Time.parse(date_string)
timestamp = time.to_i
puts timestamp
# Parse date string as UTC
time_utc = Time.parse(date_string + ' UTC')
timestamp_utc = time_utc.to_i
puts timestamp_utc # 1609459200
# More precise parsing
require 'date'
datetime = DateTime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
timestamp_from_datetime = datetime.to_time.to_i
puts timestamp_from_datetime
メモ:
Ruby の Time.now.to_i は秒を返します。ミリ秒には (Time.now.to_f * 1000).to_i を使用します。
複雑なタイムゾーン処理には、gem の tzinfo の使用を検討してください。
現在のタイムスタンプを取得
-- MySQL
SELECT UNIX_TIMESTAMP() AS current_timestamp;
SELECT UNIX_TIMESTAMP(NOW(3)) * 1000 AS current_timestamp_ms;
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW()) AS current_timestamp;
SELECT EXTRACT(EPOCH FROM NOW()) * 1000 AS current_timestamp_ms;
-- SQLite
SELECT STRFTIME('%s', 'now') AS current_timestamp;
SELECT STRFTIME('%s', 'now') * 1000 AS current_timestamp_ms;
-- SQL Server
SELECT DATEDIFF(SECOND, '1970-01-01', GETUTCDATE()) AS current_timestamp;
SELECT DATEDIFF(MILLISECOND, '1970-01-01', GETUTCDATE()) AS current_timestamp_ms;
タイムスタンプを日付に変換
-- MySQL
SELECT FROM_UNIXTIME(1609459200) AS datetime;
SELECT FROM_UNIXTIME(1609459200, '%Y-%m-%d %H:%i:%s') AS formatted_datetime;
-- PostgreSQL
SELECT TO_TIMESTAMP(1609459200) AS datetime;
SELECT TO_CHAR(TO_TIMESTAMP(1609459200), 'YYYY-MM-DD HH24:MI:SS') AS formatted_datetime;
-- SQLite
SELECT DATETIME(1609459200, 'unixepoch') AS datetime;
SELECT STRFTIME('%Y-%m-%d %H:%M:%S', 1609459200, 'unixepoch') AS formatted_datetime;
-- SQL Server
SELECT DATEADD(SECOND, 1609459200, '1970-01-01') AS datetime;
日付をタイムスタンプに変換
-- MySQL
SELECT UNIX_TIMESTAMP('2021-01-01 00:00:00') AS timestamp;
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2021-01-01 00:00:00') AS timestamp;
-- SQLite
SELECT STRFTIME('%s', '2021-01-01 00:00:00') AS timestamp;
-- SQL Server
SELECT DATEDIFF(SECOND, '1970-01-01', '2021-01-01 00:00:00') AS timestamp;
メモ:
データベースシステムごとに、タイムスタンプ処理の関数は異なります。
データベースでタイムスタンプを扱う際は、常にタイムゾーンの影響を考慮してください。
現在のタイムスタンプを取得
' Get current Unix timestamp (seconds)
=INT((NOW()-DATE(1970,1,1))*86400)
' Get current Unix timestamp (milliseconds)
=INT((NOW()-DATE(1970,1,1))*86400*1000)
' Get timestamp for date in cell A1
=INT((A1-DATE(1970,1,1))*86400)
' Account for timezone (subtract 8 hours for UTC+8)
=INT((NOW()-DATE(1970,1,1)-TIME(8,0,0))*86400)
タイムスタンプを日付に変換
' 変換 Unix timestamp (seconds) to Excel date
' Assuming A1 contains the timestamp
=DATE(1970,1,1)+A1/86400
' 変換 Unix timestamp (milliseconds) to Excel date
=DATE(1970,1,1)+A1/86400/1000
' 変換 to local timezone (add 8 hours for UTC+8)
=DATE(1970,1,1)+A1/86400+TIME(8,0,0)
' Format as text
=TEXT(DATE(1970,1,1)+A1/86400,"yyyy-mm-dd hh:mm:ss")
VBA Functions
' 変換 Unix timestamp to Excel date
Function UnixToExcelDate(UnixTimestamp As Long) As Date
UnixToExcelDate = Date加算("s", UnixTimestamp, DateSerial(1970, 1, 1))
End Function
' 変換 Excel date to Unix timestamp
Function ExcelDateToUnix(ExcelDate As Date) As Long
ExcelDateToUnix = DateDiff("s", DateSerial(1970, 1, 1), ExcelDate)
End Function
' Get current Unix timestamp
Function GetCurrentUnixTimestamp() As Long
GetCurrentUnixTimestamp = DateDiff("s", DateSerial(1970, 1, 1), Now)
End Function
' Usage examples:
' =UnixToExcelDate(1609459200)
' =ExcelDateToUnix(NOW())
' =GetCurrentUnixTimestamp()
メモ:
Excel stores dates as serial numbers, with 1970-01-01 being day 25569 in the 1900 date system.
Always consider timezone conversions when working with timestamps in Excel.
VBA functions provide more flexibility for complex timestamp operations.