ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ Unix ํ์์คํฌํ ๋ค๋ฃจ๊ธฐ
ํ๋ก๊ทธ๋๋ฐ์์ Unix ํ์์คํฌํ๋ฅผ ์ฌ์ฉํ๋ ์ด์
Unix ํ์์คํฌํ๋ ์ํํธ์จ์ด์์ ์๊ฐ์ ๋ค๋ฃจ๋ ๋ณดํธ์ ์ธ ๊ธฐ์ค์ ๋๋ค. ๋ ์ง ์ฐ์ฐ์ ๊ฐ๋จํ๊ฒ ๋ง๋ค๊ณ (๋จ์ํ ์ด๋ฅผ ๋ํ๊ฑฐ๋ ๋นผ๋ฉด ๋จ), ์๊ฐ๋ ํผ๋์ ์์ ๋ฉฐ, JSON์ผ๋ก ๊น๋ํ๊ฒ ์ง๋ ฌํ๋ฉ๋๋ค. ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ํ์์คํฌํ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ๊ฐ๋จํ ํจ์๋ฅผ ์ ๊ณตํ์ง๋ง, API๋ ๋ฏธ๋ฌํ๊ฒ ๋ค๋ฆ ๋๋ค. ์ด ๊ฐ์ด๋๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ธ์ด์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค.
JavaScript (๋ธ๋ผ์ฐ์ ๋ฐ Node.js)
JavaScript๋ Date ๊ฐ์ฒด์ ๋ฐ๋ฆฌ์ด๋ฅผ ์ฌ์ฉํ์ง๋ง, ๋๋ถ๋ถ์ ๋ค๋ฅธ ์์คํ
์ ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ด ๊ฐ์ฅ ํํ ๋ฒ๊ทธ์ ์์ธ์
๋๋ค.
ํ์ฌ ํ์์คํฌํ ๊ฐ์ ธ์ค๊ธฐ
// ์ํฌํฌ ์ดํ ๋ฐ๋ฆฌ์ด (ํ์ค JavaScript)
const nowMs = Date.now(); // 1785292800000
// ์ํฌํฌ ์ดํ ์ด(ํธํ์ฑ ์ฉ๋)
const nowSec = Math.floor(Date.now() / 1000); // 1785292800
// Node.js ๊ณ ํด์๋ ํ์ด๋จธ(๋ง์ดํฌ๋ก์ด)
const hrTime = process.hrtime.bigint();
ํ์์คํฌํ๋ฅผ ๋ ์ง๋ก ๋ณํํ๊ธฐ
// ์ด ๋จ์์์ ๋ณํ (๋๋ถ๋ถ์ API ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000); // 1000์ ๊ณฑํ์ธ์!
// ๋ฐ๋ฆฌ์ด ๋จ์์์ ๋ณํ (JavaScript ๊ธฐ๋ณธ)
const dateFromMs = new Date(1785292800000);
// ๊ฒฐ๊ณผ ์์ ์ง์
console.log(date.toISOString());
// Output: 2026-07-19T00:00:00.000Z
console.log(date.toLocaleString("en-US", { timeZone: "America/New_York" }));
// Output: 7/18/2026, 8:00:00 PM
๋ ์ง ๋ฌธ์์ด์ ํ์์คํฌํ๋ก ํ์ฑํ๊ธฐ
// Date.parse() ์ฌ์ฉ (๋ฐ๋ฆฌ์ด ๋ฐํ)
const ms = Date.parse("2026-07-19T00:00:00Z");
const sec = ms / 1000; // 1785292800
// Date ์์ฑ์ ์ฌ์ฉ
const ts = Math.floor(new Date("2026-07-19 UTC").getTime() / 1000);
์ฃผ์: Date.parse()์ ๋์์ ๋นํ์ค ๋ ์ง ๋ฌธ์์ด์ ๋ํด ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฆ
๋๋ค. ์๊ฐ๋ ์ง์ ์(Z for UTC)์ ํจ๊ป ISO 8601 ํ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์์ ํฉ๋๋ค.
JavaScript์์ ์๊ฐ๋ ๋ค๋ฃจ๊ธฐ
// ํน์ ์๊ฐ๋๋ก ์์ ์ง์
const date = new Date(1785292800 * 1000);
const options = {
timeZone: "Asia/Tokyo",
year: "numeric", month: "2-digit", day: "2-digit",
hour: "2-digit", minute: "2-digit", second: "2-digit",
};
console.log(date.toLocaleString("ja-JP", options));
// Output: 07/19/2026 09:00:00
๊ณ ๊ธ ์๊ฐ๋ ์์
์๋ Intl.DateTimeFormat API ๋๋ date-fns-tz, Luxon๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Python
Python์ ํ์์คํฌํ ์์
์ ์ํ ์ ์์ค(time) ๋ฐ ๊ณ ์์ค(datetime) ๋ชจ๋์ ๋ชจ๋ ์ ๊ณตํฉ๋๋ค.
ํ์ฌ ํ์์คํฌํ ๊ฐ์ ธ์ค๊ธฐ
import time
# ์์ ์ด(float, ์์์ ์ดํ ๋ฐ๋ฆฌ์ด ํฌํจ)
current = time.time()
# ์: 1785292800.123456
# ์ ์๋ก
current_int = int(time.time())
ํ์์คํฌํ๋ฅผ Datetime์ผ๋ก ๋ณํํ๊ธฐ
from datetime import datetime
# UTC datetime (Python 3.x)
dt_utc = datetime.utcfromtimestamp(1785292800)
# ์๊ฐ๋ ์ธ์ datetime (Python 3.9+ with zoneinfo)
from zoneinfo import ZoneInfo
dt_tokyo = datetime.fromtimestamp(1785292800, tz=ZoneInfo("Asia/Tokyo"))
# ์์์ด ์ง์ ๋ ๋ฌธ์์ด
print(dt_utc.strftime("%Y-%m-%d %H:%M:%S"))
# Output: 2026-07-19 00:00:00
๋ ์ง ๋ฌธ์์ด์ ํ์์คํฌํ๋ก ํ์ฑํ๊ธฐ
import time
from datetime import datetime
# ๋ ์ง ๋ฌธ์์ด์์ ๋ณํ
dt = datetime.strptime("2026-07-19 00:00:00", "%Y-%m-%d %H:%M:%S")
timestamp = time.mktime(dt.timetuple()) # ๋ก์ปฌ ์๊ฐ์ผ๋ก ์ฒ๋ฆฌ๋จ
# UTC ์
๋ ฅ์ ๊ฒฝ์ฐ
from datetime import timezone
timestamp_utc = dt.replace(tzinfo=timezone.utc).timestamp()
Pandas๋ก ์์ ํ๊ธฐ (๋ฐ์ดํฐ ๋ถ์)
import pandas as pd
# Unix ํ์์คํฌํ ์ด์ datetime์ผ๋ก ๋ณํ
df["timestamp"] = pd.to_datetime(df["unix_seconds"], unit="s")
# ๋ค๋ฅธ ๋จ์๋ก ๋ณํ
df["datetime_ms"] = pd.to_datetime(df["unix_milliseconds"], unit="ms")
# ์๊ฐ๋ ์ค์
df["timestamp_ny"] = df["timestamp"].dt.tz_localize("UTC").dt.tz_convert("America/New_York")
PHP
PHP๋ ํ์์คํฌํ ์์ ์ ๊ฐ์ฅ ๊ฐ๋จํ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ์ฌ ํ์์คํฌํ ๊ฐ์ ธ์ค๊ธฐ
<?php
$now = time(); // ์ ์: 1785292800
$nowMicro = microtime(); // ๋ฌธ์์ด: "0.12345600 1785292800"
$nowFloat = microtime(true); // Float: 1785292800.1235
ํ์์คํฌํ๋ฅผ ๋ ์ง๋ก ๋ณํํ๊ธฐ
<?php
echo date("Y-m-d H:i:s", 1785292800);
// Output: 2026-07-19 00:00:00
// ์๊ฐ๋ ํฌํจ
$tz = new DateTimeZone("Europe/London");
$dt = new DateTime("@1785292800");
$dt->setTimezone($tz);
echo $dt->format("Y-m-d H:i:s");
Go
Go์ time ํจํค์ง๋ ์ ์ค๊ณ๋์ด ์์ง๋ง, ๊ด๋ จ๋ ํ์
์ ๋ํ ๋ช
ํํ ์ดํด๊ฐ ํ์ํฉ๋๋ค.
ํ์ฌ ํ์์คํฌํ ๊ฐ์ ธ์ค๊ธฐ
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
sec := now.Unix() // int64 ์ด
milli := now.UnixMilli() // int64 ๋ฐ๋ฆฌ์ด
nano := now.UnixNano() // int64 ๋๋
ธ์ด
fmt.Printf("Seconds: %d\n", sec)
}
ํ์์คํฌํ๋ฅผ ๋ ์ง๋ก ๋ณํํ๊ธฐ
t := time.Unix(1785292800, 0)
fmt.Println(t.UTC())
// Output: 2026-07-19 00:00:00 +0000 UTC
// ๋ฌธ์์ด๋ก ์์ ์ง์
fmt.Println(t.Format("2006-01-02 15:04:05"))
// Output: 2026-07-19 00:00:00
// ์๊ฐ๋ ํฌํจ
loc, _ := time.LoadLocation("America/Chicago")
fmt.Println(t.In(loc))
Rust
use std::time::{SystemTime, UNIX_EPOCH};
// ํ์ฌ ํ์์คํฌํ
let now = SystemTime::now()
.duration_since(UNIX_EPOCH)
.expect("Time went backwards");
println!("Seconds: {}", now.as_secs());
// ํ์์คํฌํ๋ฅผ ๋ ์ง๋ก ๋ณํ
let dt = chrono::NaiveDateTime::from_timestamp_opt(1785292800, 0).unwrap();
println!("{}", dt.format("%Y-%m-%d %H:%M:%S"));
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ: ๋ชจ๋ฒ ์ฌ๋ก
์ฌ๋ฐ๋ฅธ ์ด ์ ํ ์ ํํ๊ธฐ
| ๋ฐ์ดํฐ๋ฒ ์ด์ค | ๊ถ์ฅ ์ ํ | ์ฐธ๊ณ |
|----------|-----------------|-------|
| PostgreSQL | TIMESTAMP WITH TIME ZONE ๋๋ BIGINT | ๋ค์ดํฐ๋ธ ํ์์คํฌํ ์ ํ์ด ์ ํธ๋จ |
| MySQL / MariaDB | INT UNSIGNED(2106๋
๊น์ง์ ๋ ์ง) ๋๋ BIGINT | TIMESTAMP ์ ํ(๋ฒ์๊ฐ 2038๋
์์ ๋๋จ) ํผํ ๊ฒ |
| SQLite | INTEGER | SQLite์๋ ๋ค์ดํฐ๋ธ ํ์์คํฌํ ์ ํ์ด ์์ |
| MongoDB | Date ๊ฐ์ฒด ๋๋ int64 | BSON Date๋ ๋ด๋ถ์ ์ผ๋ก 64๋นํธ ํ์์คํฌํ |
PostgreSQL ์์
-- ๋ค์ดํฐ๋ธ ํ์์คํฌํ๋ก ์ ์ฅ
CREATE TABLE events (
id SERIAL PRIMARY KEY,
occurred_at TIMESTAMP WITH TIME ZONE NOT NULL,
payload JSONB
);
-- ํ์ฌ ์๊ฐ์ผ๋ก ์ฝ์
INSERT INTO events (occurred_at) VALUES (NOW());
-- Unix ํ์์คํฌํ๋ก ์กฐํ
SELECT EXTRACT(EPOCH FROM occurred_at) AS unix_ts FROM events;
MySQL ์์
-- ๋ฏธ๋์๋ ์์ ํ ์ ์ฅ์ ์ํด BIGINT ์ฌ์ฉ
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
event_time BIGINT NOT NULL,
message TEXT
);
-- ํ์ฌ ํ์์คํฌํ ์ฝ์
INSERT INTO logs (event_time, message) VALUES (UNIX_TIMESTAMP(), 'Server started');
-- ์กฐํ ๋ฐ ๋ณํ
SELECT FROM_UNIXTIME(event_time) AS readable_time FROM logs;
์ธ์ด ๋น๊ต ํ
| ์ธ์ด | ํ์ฌ ํ์์คํฌํ | ํ์์คํฌํ โ ๋ ์ง | ๋ ์ง โ ํ์์คํฌํ | ํด์๋ |
|----------|-------------------|-------------------|-------------------|------------|
| JavaScript | Date.now() | new Date(ts * 1000) | Date.parse(str) / 1000 | ๋ฐ๋ฆฌ์ด |
| Python | time.time() | datetime.fromtimestamp(ts) | datetime.strptime(str).timestamp() | ์์ ์ด |
| PHP | time() | date("Y-m-d", ts) | strtotime(str) | ์ด |
| Go | time.Now().Unix() | time.Unix(ts, 0) | time.Parse(layout, str).Unix() | ์ด |
| Rust | SystemTime::now() | NaiveDateTime::from_timestamp_opt() | โ | ๋ค์ํจ |
์ด๋ค ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ , ์ ํฌ Unix Timestamp Converter๋ ๋น ๋ฅธ ํ์ธ ๋ฐ ๋๋ฒ๊น ์ ์ํ ์ ๋ขฐํ ์ ์๋ ๋๋ฐ ๋๊ตฌ์ ๋๋ค.