English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby Date & Time (Date & Time)

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.

Créer la date et l'heure actuelles

下面是获取当前的日期和时间的简单示例:

Exemple en ligne

#!/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

.inspect

pour obtenir les composants Date & Time Time Nous pouvons utiliser

Exemple en ligne

#!/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 :

Time.utcCST Time.gm Time.local et

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 :

Exemple en ligne

#!/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 :

Exemple en ligne

#!/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

Fuseaux horaires et heure d'été

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

Formatage de la date et de l'heure

Il y a plusieurs façons de formatter la date et l'heure. Les exemples suivants montrent une partie d'entre elles :

Exemple en ligne

#!/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

Instructions de formatage du temps

Les instructions et les méthodes énumérées dans le tableau suivant Time.strftime Utilisés ensemble.

CommandeDescription
%aAbréviation du nom du jour de la semaine (par exemple Sun).
%ANom complet du jour de la semaine (par exemple Sunday).
%bAbréviation du nom du mois (par exemple Jan).
%BNom complet du mois (par exemple January).
%cReprésentation optimale de la date et de l'heure locale.
%dLe numéro du jour dans le mois (01 à 31)
%HL'heure dans la journée (24 Le système d'heure (00 à 23)
%IL'heure dans la journée (12 Le système d'heure (01 à 12)
%jLe numéro du jour dans l'année (001 à 366)
%mLe numéro du mois dans l'année (01 à 12)
%MLe numéro de la minute dans l'heure (00 à 59)
%pIndication de l'heure solaire (AM ou PM).
%SLe numéro de la seconde dans la minute (00 ou 60).
%ULe numéro de la semaine de l'année, à partir du premier dimanche (comme le premier jour de la première semaine) (00 à 53)
%WLe numéro de la semaine de l'année, à partir du premier lundi (comme le premier jour de la première semaine) (00 à 53)
%wLe jour de la semaine dans la semaine (Sunday est 0, 0 à 6)
%xPrésentation prioritaire sans heure et avec date.
%XPrésentation prioritaire sans date et avec heure.
%yAnnée sans siècle (00 à 99)
%YAnnée avec siècle.
%ZNom de fuseau horaire.
%%% caractères.

Algorithmes de temps

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