English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Time La classe è utilizzata in Ruby per rappresentare data e ora. È basata sulla data e ora fornite dal sistema operativo. La classe potrebbe non essere in grado di rappresentare le date prima del 1970 o dopo il 2038.
Questo tutorial ti farà conoscere tutti i concetti importanti di data e ora.
Ecco un esempio semplice di come ottenere la data e l'ora corrente:
#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time1 = Time.new puts "Ora corrente: " + time1.inspect # La funzione Time.now è la stessa time2 = Time.now puts "Ora corrente: " + time2.inspect
以上示例運行輸出結果為:
Ora corrente: 2015-09-17 15:23:14 +0800 Ora corrente: 2015-09-17 15:23:14 +0800
Possiamo utilizzare Time Oggetti utilizzati per ottenere vari componenti di data e ora. Ecco un esempio:
#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time = Time.new # Componenti di Time puts "Ora corrente: " + time.inspect puts time.year # => anno del giorno puts time.month # => mese del giorno (da 1 a 12) puts time.day # => giorno del mese (da 1 a 31) puts time.wday # => giorno della settimana nella settimana (0 è domenica) puts time.yday # => 365: giorno dell'anno puts time.hour # => 23:24: ora in formato 24 ore puts time.min # => 59 puts time.sec # => 59 puts time.usec # => 999999: microsecondi puts time.zone # => "UTC": nome della zona oraria
以上示例運行輸出結果為:
Ora corrente: 2015-09-17 15:24:44 +0800 2015 9 17 4 260 15 24 44 921519 CST
These functions can be used to format standard date formats, as shown below:
# July 8, 2008 Time.local(2008, 7, 8) # July 8, 2008, 09:10 am, local time Time.local(2008, 7, 8, 9, 10) # July 8, 2008, 09:10 UTC Time.utc(2008, 7, 8, 9, 10) # July 8, 2008, 09:10:11 GMT (the same as UTC) Time.gm(2008, 7, 8, 9, 10, 11)
The following example retrieves all components in the array:
[sec, min, hour, day, month, year, wday, yday, isdst, zone]
Try the following example:
#!/usr/bin/ruby -w time = Time.new values = time.to_a p values
以上示例運行輸出結果為:
[39, 25, 15, 17, 9, 2015, 4, 260, false, "CST"]
This array can be passed to Time.utc or Time.local Functions to get different date formats, as shown below:
#!/usr/bin/ruby -w time = Time.new values = time.to_a puts Time.utc(*values)
以上示例運行輸出結果為:
2015-09-17 15:26:09 UTC
Below is the way to get time, the number of seconds since the epoch (platform-related):
# Returns the number of seconds since the epoch time = Time.now.to_i # Converts seconds to Time object Time.at(time) # Returns the number of seconds since the epoch, including microseconds time = Time.now.to_f
You can use Time Object to get all information about time zones and daylight saving time, as shown below:
time = Time.new # This is an explanation time.zone # => "UTC": returns the time zone time.utc_offset # => 0: UTC is 0 seconds offset from UTC time.zone # => "PST" (or other time zone) time.isdst # => false if UTC does not have DST (Daylight Saving Time) time.utc? # => true if in UTC time zone time.localtime # Convert to local time zone time.gmtime # Converti in UTC time.getlocal # Restituisce un nuovo oggetto Time nella zona oraria locale time.getutc # Restituisce un nuovo oggetto Time nel UTC
Ci sono diversi modi per formattare la data e l'ora. Di seguito è riportato un esempio di parte di essi:
#!/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
Le istruzioni e i metodi elencati nella tabella sottostante Time.strftime Utilizzare insieme.
Istruzione | Descrizione |
---|---|
%a | Abbreviazione del giorno della settimana (ad esempio Sun). |
%A | Nome completo del giorno della settimana (ad esempio Sunday). |
%b | Abbreviazione del mese (ad esempio Jan). |
%B | Nome completo del mese (ad esempio January). |
%c | Rappresentazione preferita della data e dell'ora locale. |
%d | Giorno del mese (da 01 a 31). |
%H | Ora del giorno, in sistema a 24 ore (da 00 a 23). |
%I | Ora del giorno, in sistema a 12 ore (da 01 a 12). |
%j | Giorno dell'anno (da 001 a 366). |
%m | Mese dell'anno (da 01 a 12). |
%M | Minuto nell'ora (da 00 a 59). |
%p | Indicazione meridiana (AM o PM). |
%S | Secondo nel minuto (00 o 60). |
%U | Settimana dell'anno corrente, iniziando dal primo domenica (prima settimana del primo giorno) (da 00 a 53). |
%W | Settimana dell'anno corrente, iniziando dal primo lunedì (prima settimana del primo giorno) (da 00 a 53). |
%w | Giorno della settimana nel ciclo della settimana (Sunday è 0, da 0 a 6). |
%x | Rappresentazione prioritaria con solo la data senza l'ora. |
%X | Rappresentazione prioritaria con solo l'ora senza la data. |
%y | Rappresentazione dell'anno senza secolo (da 00 a 99). |
%Y | Anno con il secolo. |
%Z | Nome della zona oraria. |
%% | % carattere. |
Puoi fare semplici calcoli matematici con il tempo, come mostrato di seguito:
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