English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Time Ruby에서 날짜와 시간을 표현하는 클래스입니다. 이 클래스는 운영체제가 제공하는 시스템 날짜와 시간을 기반으로 합니다. 이 클래스는 표현할 수 없을 수도 있습니다 1970년 전 또는 2038 년이 지나고 날짜
이 튜토리얼은 날짜와 시간의 모든 중요한 개념을 이해하도록 도와줍니다.
현재 날짜와 시간을 얻는 간단한 예제입니다:
#!/usr/bin/ruby -w # -*- encoding: UTF-8 -*- time1 = Time.new puts "현재 시간 : " + time1.inspect #Time.now과 동일 time2 = Time.now puts "현재 시간 : " + time2.inspect
위 예제의 실행 결과는 다음과 같습니다:
현재 시간: 2015-09-17 15:23:14 +0800 현재 시간: 2015-09-17 15:23:14 +0800
다음은 Time 객체를 사용하여 다양한 날짜와 시간 구성 요소를 얻을 수 있습니다. 다음 예제를 참조하세요:
#!/usr/bin/ruby -w # -*- encoding: UTF-8 -*- time = Time.new #Time의 구성 요소 puts "현재 시간 : " + time.inspect puts time.year # => 날짜의 연도 puts time.month # => 날짜의 월(1 부터 12) puts time.day # => 월 중의 날짜(1 부터 31) puts time.wday # => 일주일 중의 요일(0은 일요일) puts time.yday # => 365:년도 중의 날짜 puts time.hour # => 23:24 오전/오후 시간 puts time.min # => 59 puts time.sec # => 59 puts time.usec # => 999999:마이크로초 puts time.zone # => "UTC": 시간대 이름
위 예제의 실행 결과는 다음과 같습니다:
현재 시간: 2015-09-17 15:24:44 +0800 2015 9 17 4 260 15 24 44 921519 CST
이 함수들은 다음과 같은 표준 형식의 날짜를 포맷하는 데 사용될 수 있습니다:
#7월 8, 2008 Time.local(2008, 7, 8) #7월 8, 2008, 09:10am, 로컬 시간 Time.local(2008, 7, 8, 9, 10) #7월 8, 2008, 09:10 UTC Time.utc(2008, 7, 8, 9, 10) #7월 8, 2008, 09:10:11 GMT(UTC와 동일) Time.gm(2008, 7, 8, 9, 10, 11)
다음 예제는 배열에서 모든 구성 요소를 얻습니다:
[sec,min,hour,day,month,year,wday,yday,isdst,zone]
다음 예제를 시도해 보세요:
#!/usr/bin/ruby -w time = Time.new values = time.to_a p values
위 예제의 실행 결과는 다음과 같습니다:
[39, 25, 15, 17, 9, 2015, 4, 260, false, "CST"]
이 배열은 전달될 수 있습니다 Time.utc 또는 Time.local 다음은 날짜의 다른 형식을 얻는 함수 예제입니다:
#!/usr/bin/ruby -w time = Time.new values = time.to_a puts Time.utc(*values)
위 예제의 실행 결과는 다음과 같습니다:
2015-09-17 15:26:09 UTC
다음은 시간을 얻는 방법입니다. 원시 시간부터의 초 수(플랫폼 관련):
#원시 시간부터의 초 수를 반환합니다 time = Time.now.to_i #초 수를 Time 객체로 변환합니다 Time.at(time) #반환되는 값은 원시 시간부터의 초 수이며 마이크로초를 포함합니다 time = Time.now.to_f
다음과 같이 사용할 수 있습니다. Time 객체를 사용하여 시간대와 여름 시간에 대한 모든 정보를 얻을 수 있습니다. 예를 들어:
time = Time.new # 이곳은 설명 time.zone # => "UTC": 시간대를 반환 time.utc_offset # => 0: UTC는 UTC에 대한 0초의 변위 time.zone # => "PST"(또는 다른 시간대) time.isdst # => false: UTC가 DST(여름 시간) 없음 time.utc? # => true: UTC 시간대에서 time.localtime # 로컬 시간대로 변환 time.gmtime # UTC로 변환 time.getlocal # 로컬에서 새로운 Time 객체를 반환 time.getutc # UTC에서 새로운 Time 객체를 반환
데이터와 시간을 포맷화하는 여러 가지 방법이 있습니다. 아래 예제는 그 중 일부를 보여줍니다:
#!/usr/bin/ruby -w time = Time.new puts time.to_s puts time.ctime puts time.localtime puts time.strftime("%Y-%m-%d %H:%M:%S")
위 예제의 실행 결과는 다음과 같습니다:
2015-09-17 15:26:42 +0800 Thu Sep 17 15:26:42 2015 2015-09-17 15:26:42 +0800 2015-09-17 15:26:42
아래 표에 나열된 명령과 메서드 Time.strftime 함께 사용됩니다.
명령 | 설명 |
---|---|
%a | 요일 이름의 약자(예: Sun). |
%A | 요일 이름의 전체 이름(예: Sunday). |
%b | 월 이름의 약자(예: Jan). |
%B | 월 이름의 전체 이름(예: January). |
%c | 선호하는 로컬 날짜와 시간 표기법. |
%d | 달 중 몇 일이지요(01 부터 31)。 |
%H | 하루 중 몇 시간이지요24 시간 체제(00에서 23)。 |
%I | 하루 중 몇 시간이지요12 시간 체제(01 부터 12)。 |
%j | 년 중 몇 일이지요(001 부터 366)。 |
%m | 년 중 몇 월이지요(01 부터 12)。 |
%M | 시간 중 몇 분이지요(00에서 59)。 |
%p | 예상선 지시(AM 또는 PM). |
%S | 분 중 몇 번째 초가지요(00 또는 60까지) |
%U | 해당 연의 주 수, 첫 번째 일요일(첫 번째 주의 첫 번째 날로)에서 시작(00에서 53)。 |
%W | 해당 연의 주 수, 첫 번째 월요일(첫 번째 주의 첫 번째 날로)에서 시작(00에서 53)。 |
%w | 일주일 중 몇 번째 날이지요(일요일은 0, 0에서 6)。 |
%x | 시간만 있는 우선 표시법. |
%X | 날짜만 있는 우선 표시법. |
%y | 세기가 포함되지 않은 연도 표시(00에서 99)。 |
%Y | 세기가 포함된 연도. |
%Z | 시간대 이름. |
%% | % 문자. |
시간을 사용하여 간단한 수학을 할 수 있습니다. 예를 들어:
now = Time.now # 현재 시간 puts now past = now - 10 # 10 초 전. Time - number => Time puts past future = now + 10 # 현재부터 10 초 후. Time + number => Time puts future diff = future - now # => 10 Time - Time => 초수 puts diff
위 예제의 실행 결과는 다음과 같습니다:
2015-09-17 15:27:08 +0800 2015-09-17 15:26:58 +0800 2015-09-17 15:27:18 +0800 10.0