English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Time La classe en Ruby est utilisée pour représenter la date et l'heure. Elle est basée sur la date et l'heure du système fournies par le système d'exploitation. Cette classe peut ne pas pouvoir représenter 197Ou 0 an avant 2038 La date après l'année.
Ce tutoriel vous familiarisera avec toutes les concepts importants de la date et de l'heure.
下面是获取当前的日期和时间的简单示例:
#!/usr/bin/ruby -w # -*- L'objet pour obtenir divers composants de date et heure. Voir l'exemple suivant :-8 -*- = Time.now1 Voici un exemple simple pour obtenir la date et l'heure actuelles : # Composants de Time + = Time.now1time = Time.new = Time.now2 # Fonctionnalité identique à Time.now # Composants de Time + = Time.now2time
Le résultat de l'exemple ci-dessus est le suivant :
puts time.zone # => "UTC" : nom de la zone horaire 2015-09-17 15:23:14 +0800 puts time.zone # => "UTC" : nom de la zone horaire 2015-09-17 15:23:14 +0800
pour obtenir les composants Date & Time Time Nous pouvons utiliser
#!/usr/bin/ruby -w # -*- L'objet pour obtenir divers composants de date et heure. Voir l'exemple suivant :-8 -*- time = Time.new coding: UTF # Composants de Time + puts "Heure actuelle : " time.inspect puts time.year # => année de la date1 à 12puts time.day # => jour du mois ( puts time.month # => mois de la date (1 à 31puts time.day # => jour du mois ( ) puts time.wday # => jour de la semaine dans la semaine (0 est dimanche) 365puts time.yday # => :l'année du jour 23puts time.hour # =>24 : Heure 59 puts time.min # => 59 puts time.sec # => 999999puts time.usec # => :microseconde
Le résultat de l'exemple ci-dessus est le suivant :
puts time.zone # => "UTC" : nom de la zone horaire 2015-09-17 15:24:44 +0800 2015 9 17 4 260 15 24 44 921519 Heure actuelle :
Fonction
Time.utc( 8, 2008 am, heure locale2008, 7, 8Time.gm( Time.utc( 8, 2008# Juillet9:10Ces fonctions peuvent être utilisées pour formatter les formats de date standards, comme suit : am, heure locale2008, 7, 8, 9, 10Time.gm( Time.utc( 8, 2008# Juillet9:10 UTC Time.local(2008, 7, 8, 9, 10Time.gm( Time.utc( 8, 2008# Juillet9:10:11 , 0 GMT (même que UTC)2008, 7, 8, 9, 10, 11Time.gm(
)
[sec,min,hour,day,month,year,wday,yday,isdst,zone]
Essayons l'exemple suivant :
#!/usr/bin/ruby -w time = Time.new values = time.to_a p values
Le résultat de l'exemple ci-dessus est le suivant :
[39, 25, 15, 17, 9, 2015, 4, 260, false, "CST"]
Cet tableau peut être passé à Time.utc ou Time.local La fonction pour obtenir les formats de date différents, comme suit :
#!/usr/bin/ruby -w time = Time.new values = time.to_a puts Time.utc(*values)
Le résultat de l'exemple ci-dessus est le suivant :
2015-09-17 15:26:09 UTC
Voici les méthodes pour obtenir le temps, en secondes depuis l'époque (relatives aux plateformes) :
# Retourne le nombre de secondes depuis l'époque time = Time.now.to_i # Convertit le nombre de secondes en objet Time Time.at(time) # Retourne le nombre de secondes depuis l'époque, inclus la microseconde time = Time.now.to_f
Pour obtenir toutes les informations sur les fuseaux horaires et l'heure d'été, comme suit : Time Vous pouvez utiliser
time = Time.new # Voici l'explication time.zone # => "UTC" : Retourne la zone time.utc_offset # => 0 : UTC est un décalage de 0 secondes par rapport à UTC time.zone # => "PST" (ou autre zone) time.isdst # => false : Si UTC n'a pas DST (heure d'été) time.utc? # => true : Si dans la zone UTC time.localtime # Convertit en zone locale time.gmtime # Convertit en UTC time.getlocal # Retourne un nouveau Time dans la zone locale time.getutc # Retourne un nouveau Time dans UTC
Il y a plusieurs façons de formatter la date et l'heure. Les exemples suivants montrent une partie d'entre elles :
#!/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)
Le résultat de l'exemple ci-dessus est le suivant :
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
Les instructions et les méthodes énumérées dans le tableau suivant Time.strftime Utilisés ensemble.
Commande | Description |
---|---|
%a | Abréviation du nom du jour de la semaine (par exemple Sun). |
%A | Nom complet du jour de la semaine (par exemple Sunday). |
%b | Abréviation du nom du mois (par exemple Jan). |
%B | Nom complet du mois (par exemple January). |
%c | Représentation optimale de la date et de l'heure locale. |
%d | Le numéro du jour dans le mois (01 à 31) |
%H | L'heure dans la journée (24 Le système d'heure (00 à 23) |
%I | L'heure dans la journée (12 Le système d'heure (01 à 12) |
%j | Le numéro du jour dans l'année (001 à 366) |
%m | Le numéro du mois dans l'année (01 à 12) |
%M | Le numéro de la minute dans l'heure (00 à 59) |
%p | Indication de l'heure solaire (AM ou PM). |
%S | Le numéro de la seconde dans la minute (00 ou 60). |
%U | Le numéro de la semaine de l'année, à partir du premier dimanche (comme le premier jour de la première semaine) (00 à 53) |
%W | Le numéro de la semaine de l'année, à partir du premier lundi (comme le premier jour de la première semaine) (00 à 53) |
%w | Le jour de la semaine dans la semaine (Sunday est 0, 0 à 6) |
%x | Présentation prioritaire sans heure et avec date. |
%X | Présentation prioritaire sans date et avec heure. |
%y | Année sans siècle (00 à 99) |
%Y | Année avec siècle. |
%Z | Nom de fuseau horaire. |
%% | % caractères. |
Vous pouvez effectuer des calculs simples avec le temps, comme suit :
now = Time.now # Heure actuelle puts now past = now - 10 # 10 secondes avant. Time - number => Time puts past future = now + 10 # Du présent moment 10 secondes après. Time + number => Time puts future diff = future - now # => 10 Time - Time => nombre de secondes puts diff
Le résultat de l'exemple ci-dessus est le suivant :
2015-09-17 15:27:08 +0800 2015-09-17 15:26:58 +0800 2015-09-17 15:27:18 +0800 10.0