Ruby에서 UTC 타임 스탬프를 ISO 8601로 변환
UTC로 된 타임 스탬프가 있습니다.
'2010-10-25 23:48:46 UTC'
ISO 8601로 변환해야합니다.
'2010-10-29 06 : 09Z'
문서는 지옥처럼 혼란 스럽습니다.이를 수행하는 가장 쉬운 방법은 무엇입니까?
우리를 속이려는 것 같아요.
질문에 대한 입력 날짜는 2010 년 10 월 25 일이고 출력은 2010 년 10 월 29 일 입니다 . 잘했습니다!
이 nit-picking 스레드에서 계속 : 시간도 완전히 다르며 출력 시간에서 초를 놓치고 있습니다.
이제 진정한 답입니다.
먼저 약간의 사실을 알 수 있습니다. Ruby의 ISO 8601 출력은 ISO 8601의 Wikipedia 페이지 의 "Combined date and time"출력과 유사 합니다 .
문자열이 있으므로 Time
.NET으로 할 수 있는 객체 로 변환해야합니다 to_time
. 그런 다음 iso8601
ISO 8601 버전을 가져 오기 위해 해당 객체를 호출하기 만하면됩니다 .
"2010-10-25 23:48:46 UTC".to_time.iso8601
이 to_time
방법은 Rails에서 제공하는 반면 iso8601
Ruby의 표준 라이브러리에서는 제공합니다.
많은 실험 끝에 Time 라이브러리의 파서가 DateTime보다 낫다는 것을 알았습니다. 그 경고와 함께, 저는 이런 종류의 일에 항상 DateTime보다는 Time을 사용하며, 루비 문서는 이것이 왜 그렇게되는지 알아보기 어렵습니다.
require 'time'
puts Time.parse("2010-10-25 23:48:46 UTC").iso8601
"2010-10-25T23:48:46Z"
참고 : to_time 메소드를 적용하기 전에 시간 문자열을 시간 객체로 변환 (분석)해야합니다.
ruby-1.9.2-p180 :016 > "2010-10-25 23:48:46 UTC".to_time.iso8601
NoMethodError: undefined method `to_time' for "2010-10-25 23:48:46 UTC":String
from (irb):16
올바른 절차 :
irb> ut = DateTime.parse("2010-10-25 23:48:46 UTC")
irb> ut.iso8601
=> "2010-10-25T23:48:46+00:00"
참고 URL : https://stackoverflow.com/questions/4057015/converting-utc-timestamp-to-iso-8601-in-ruby
'your programing' 카테고리의 다른 글
Windows에서 어셈블러로 Hello World를 작성하는 방법은 무엇입니까? (0) | 2020.10.04 |
---|---|
빈 입력 필드에 대한 JavaScript 유효성 검사 (0) | 2020.10.04 |
모든 Flask 경로에 접두사 추가 (0) | 2020.10.04 |
React component / div를 드래그 가능하게 만드는 권장 방법 (0) | 2020.10.04 |
Laravel에서 생성 한 URL에서“public / index.php”를 제거하려면 어떻게해야합니까? (0) | 2020.10.04 |