타임스탬프 자료

프로그래밍 언어 타임스탬프 비교

프로그래밍 언어 타임스탬프 비교

널리 사용되는 프로그래밍 언어의 타임스탬프 작업에 대한 빠른 참조입니다.

현재 타임스탬프

언어밀리초마이크로초
자바스크립트Math.floor(Date.now() / 1000)Date.now()performance.now()
파이썬int(time.time())int(time.time() * 1000)time.time_ns() // 1000
자바System.currentTimeMillis() / 1000System.currentTimeMillis()Instant.now().getEpochSecond()
가기time.Now().Unix()time.Now().UnixMilli()time.Now().UnixMicro()
PHP시간()마이크로타임(true) * 1000마이크로타임(true) * 1000000
루비Time.now.to_iTime.now.to_f * 1000Time.now.to_r
C#DateTimeOffset.UtcNow.ToUnixTimeSeconds()DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()-
스위프트Date().timeIntervalSince1970Int(Date().timeIntervalSince1970 * 1000)-

날짜까지의 타임스탬프

언어코드
자바스크립트새 날짜(타임스탬프 * 1000)
파이썬datetime.fromtimestamp(timestamp)
자바Instant.ofEpochSecond(타임스탬프)
가기time.Unix(타임스탬프, 0)
PHPdate('연월일 H:i:s', $timestamp)
루비Time.at(타임스탬프)
C#DateTimeOffset.FromUnixTimeSeconds(타임스탬프)
스위프트Date(timeIntervalSince1970: TimeInterval(timestamp))

날짜-타임스탬프

언어코드
자바스크립트Math.floor(date.getTime() / 1000)
파이썬int(date.timestamp())
자바date.toEpochSecond(ZoneOffset.UTC)
가기date.Unix()
PHPstrtotime('2024-01-01')
루비date.to_i
C#((DateTimeOffset)date).ToUnixTimeSeconds()
스위프트Int(date.timeIntervalSince1970)

서식 지정

언어코드
자바스크립트date.toISOString() 또는 date.toLocaleString()
파이썬date.strftime('%Y-%m-%d %H:%M:%S')
자바DateTimeFormatter.ISO_DATE_TIME.format(날짜)
가기date.Format(time.RFC3339)
PHPdate('연월일 H:i:s', $timestamp)
루비date.strftime('%Y-%m-%d %H:%M:%S')
C#date.ToString("yyyy-MM-dd HH:mm:ss")
스위프트dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

시간대 처리

언어UTC지역변환
자바스크립트new Date().toISOString()new Date().toLocaleString()date.toLocaleString('en-US', {timeZone: 'UTC'})
파이썬datetime.utcnow()datetime.now()date.astimezone(timezone('UTC'))
자바Instant.now()LocalDateTime.now()date.atZone(ZoneId.of("UTC"))
가기time.Now().UTC()time.Now()date.In(time.UTC)
PHPgmdate()날짜()date_default_timezone_set('UTC')
루비Time.now.utc'Time.now'Time.now.getutc`
C#DateTime.UtcNowDateTime.NowTimeZoneInfo.ConvertTimeToUtc(날짜)
스위프트Date()(내부적으로 항상 UTC)날짜()Calendar.current.dateComponents

에포크 시작

  • 모든 언어는 Unix epoch를 사용합니다: 1970년 1월 1일 00:00:00 UTC
  • 예외: GPS 시간은 1980년 1월 6일을 사용합니다.
  • TAI는 1958년 1월 1일을 사용합니다.

정밀도

  • : 가장 일반적이며 10자리(2286까지)
  • 밀리초: 13자리, JavaScript 기본값
  • 마이크로초: 16자리
  • 나노초: 19자리, 일부 시스템

시간대 저장

  • JavaScript: Date 객체에 시간대가 없으며 브라우저 시간대를 사용합니다.
  • Python: Naive 대 Aware 날짜/시간 객체
  • Java: Instant(UTC) 및 ZonedDateTime(영역 포함)
  • 이동: Time 객체에 위치가 첨부됨
  • Ruby: 시간 개체에는 시간대 오프셋이 포함됩니다.
  • C#: DateTimeKind(지정되지 않음, Utc, 로컬)
  • Swift: 날짜는 항상 UTC이고 달력은 영역을 처리합니다.

모범 사례

  1. 항상 UTC를 데이터베이스에 저장
  2. **표시용으로만 현지 시간으로 변환
  3. API 직렬화에 ISO 8601 사용
  4. 윤초 처리를 신중하게 수행하세요(GPS/TAI 대 UTC).
  5. 사용 사례에 필요한 정밀도 고려

관련 리소스