Ruby Snippets

Ruby Unix 타임스탬프 스니펫

Unix 초 가져오기, 밀리초 도출, 타임스탬프를 Time 객체로 변환, UTC 출력 포맷, 날짜 문자열 파싱을 위한 Ruby 예제.

Current Unix timestamp (seconds)
Time.now.to_i
Current Unix timestamp (milliseconds)
(Time.now.to_f * 1000).round
Time from Unix timestamp
Time.at(1700000000)
Time in specific timezone
require "time"
Time.at(1700000000).utc.strftime("%Y-%m-%d %H:%M:%S")

# With tzinfo gem:
require "tzinfo"
tz = TZInfo::Timezone.get("America/New_York")
tz.utc_to_local(Time.at(1700000000).utc)
Formatted string
Time.at(1700000000).strftime("%Y-%m-%d %H:%M:%S")
Timestamp from Time
require "time"
Time.parse("2023-11-15T06:13:20Z").to_i

Ruby 타임스탬프 기본

Ruby의 Time.now.to_i는 Unix 초를 반환합니다. 초의 소수가 필요하거나 JavaScript 스타일 타임스탬프를 기대하는 API를 위해 밀리초를 계산하려면 Time.now.to_f를 사용하세요.

Ruby Time 변환과 형식화

Unix 초로부터 Time 객체를 만들려면 Time.at(timestamp)를 사용하세요. 머신의 현지 시간대에 의존하지 않는 안정적인 출력이 필요하면 형식화 전에 utc를 호출하세요.

Ruby 운영 참고 사항

Ruby의 Time 메서드는 간결하지만, 시간대 기본값은 노트북, 서버, 백그라운드 워커 사이에서 다를 수 있습니다. 영속화하는 타임스탬프는 Unix 초나 UTC 문자열로 유지하고, 애플리케이션 시간대는 표현 계층에서 적용하세요. 사용자 입력을 파싱할 때는 서머타임 규칙을 잘못 추측하지 않도록 오프셋이나 시간대를 포함하세요.

  • Unix 초에는 Time.now.to_i를 사용
  • 밀리초 값에는 (Time.now.to_f * 1000).round를 사용
  • 안정적인 UTC 출력에는 Time.at(seconds).utc를 사용
  • Time.parse는 시간대나 오프셋을 포함하는 문자열에만 사용

FAQ

Time.now.to_i는 밀리초를 반환하나?
아니요. Time.now.to_i는 정수 Unix 초를 반환합니다. 초의 소수 부분이 필요하거나 밀리초를 도출하려면 Time.now.to_f를 사용하세요.
왜 형식화 전에 utc를 호출하나?
utc는 출력을 머신의 현지 시간대와 무관하게 만듭니다. 로그, API 페이로드, 테스트 기대값에 도움이 됩니다.
Ruby 타임스탬프를 검증하려면?
Time.at(seconds).utc.iso8601을 사용하고, 값을 작업·API·데이터베이스에 기록하기 전에 기대하는 UTC 순간과 결과를 비교하세요.