루비에서 UTC 타임스탬프를 얻는 방법은 무엇입니까?
루비에서 UTC 타임스탬프를 얻는 방법은 무엇입니까?
다음을 사용할 수 있습니다.Time.now.to_i
.
time = Time.now.getutc
근거:제가 보기에 타임스탬프는 정확히 그것입니다. 특정 시점입니다.이것은 물체로 정확하게 표현할 수 있습니다.Unix epoch 이후 몇 초, 1601년 이후 100-ns 간격, 표시 목적 또는 타임스탬프를 데이터베이스에 저장하기 위한 문자열 등 다른 것이 필요한 경우 개체에서 쉽게 가져올 수 있습니다.하지만 그것은 당신이 의도한 용도에 따라 매우 많이 다릅니다.
"진정한 타임스탬프는 Unix epoch 이후의 초 수"라고 말하는 것은 포인트를 약간 놓치고 있습니다. 포인트를 표현하는 한 가지 방법이기 때문입니다. 하지만 숫자가 아닌 시간을 다루고 있다는 것을 알기 위해서도 추가 정보가 필요합니다.aTime
객체는 특정 시점을 표현하고 그것이 무엇인지 명시함으로써 이 문제를 멋지게 해결합니다.
기본 포맷은 그다지 유용하지 않다고 생각합니다.ISO8601은 정렬이 가능하고, 비교적 작고, 널리 인식되기 때문에 선호합니다.
>> require 'time'
=> true
>> Time.now.utc.iso8601
=> "2011-07-28T23:14:04Z"
사람이 읽을 수 있는 타임스탬프가 필요한 경우(레일 마이그레이션과 같은) 예: "20190527141340"
Time.now.utc.to_formatted_s(:number) # using Rails
Time.now.utc.strftime("%Y%m%d%H%M%S") # using Ruby
일반적으로 타임스탬프에는 표준 시간대가 없습니다.
% irb
> Time.now.to_i == Time.now.getutc.to_i
=> true
초 단위로 세분화된 타임스탬프가 무슨 소용이 있습니까?함께 일하는 것이 훨씬 더 실용적이라고 생각합니다.Time.now.to_f
이런, 당신은 심지어 던질 수도 있습니다.to_s.sub('.','')
소수점을 제거하거나 다음과 같은 유형 캐스트를 수행합니다.Integer(1e6*Time.now.to_f)
.
Time.utc(2010, 05, 17)
time = Time.zone.now()
다음과 같이 작동합니다.
irb> Time.zone.now
=> 2017-12-02 12:06:41 UTC
적절한 방법은 다음을 하는 것입니다.Time.now.getutc.to_i
단순히 정수를 표시하는 것처럼 적절한 타임스탬프 양을 얻으려면 시간대 차이로 인해 항상 utc 타임스탬프와 같을 필요는 없습니다.
언급URL : https://stackoverflow.com/questions/2943065/how-to-get-utc-timestamp-in-ruby
'programing' 카테고리의 다른 글
장고 - 이메일로 로그인 (0) | 2023.06.03 |
---|---|
JOIN과 UNION의 차이점은 무엇입니까? (0) | 2023.06.03 |
Flexbox 자녀를 부모 키의 100%로 만들려면 어떻게 해야 합니까? (0) | 2023.06.03 |
Android 도면 구분선/분할선 배치? (0) | 2023.06.03 |
Xcode 명령줄 도구가 설치되어 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.06.03 |