Ruby Datum & Uhrzeit

TimeDie Time-Klasse in Ruby wird verwendet, um Datum und Uhrzeit darzustellen. Sie basiert auf dem vom Betriebssystem bereitgestellten Systemdatum und der Systemzeit. Diese Klasse kann möglicherweise keine Datumsangaben vor 1970 oder nach 2038 darstellen.

Dieses Tutorial macht Sie mit allen wichtigen Konzepten von Datum und Uhrzeit vertraut.

Aktuelles Datum und aktuelle Uhrzeit erstellen

Das Folgende ist ein einfaches Beispiel, um das aktuelle Datum und die aktuelle Uhrzeit abzurufen:

Beispiel

#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time1 = Time.new puts "Aktuelle Zeit:" + time1.inspect #Time.now ist äquivalent time2 = Time.now puts "Aktuelle Zeit:" + time2.inspect

Ausprobieren »

Die Ausgabe des obigen Beispiels ist:

当前时间 : 2015-09-17 15:23:14 +0800
当前时间 : 2015-09-17 15:23:14 +0800

Abrufen von Datums- & Uhrzeitkomponenten

Wir könnenTimeTime-Objekte verwenden, um verschiedene Datums- und Zeitkomponenten zu erhalten. Siehe folgendes Beispiel:

Beispiel

#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time = Time.new #Komponenten von Time puts "Aktuelle Zeit :" + time.inspect puts time.year #=> Jahr des Datums puts time.month #=> Monat des Datums (1 bis 12) puts time.day #=> Tag des Monats (1 bis 31) puts time.wday #=> Wochentag (0 ist Sonntag) puts time.yday #=> 365: Tag des Jahres puts time.hour #=> 23: 24-Stunden-Format puts time.min # => 59 puts time.sec # => 59 puts time.usec #=> 999999: Mikrosekunden puts time.zone #=> "UTC": Name der Zeitzone

Die Ausgabe des obigen Beispiels ist:

当前时间 : 2015-09-17 15:24:44 +0800
2015
9
17
4
260
15
24
44
921519
CST

Time.utc、Time.gmundTime.localFunktionen

Diese Funktionen können verwendet werden, um Datumsangaben in Standardformaten zu formatieren, wie unten gezeigt:

# 8. Juli 2008 Time.local(2008, 7, 8) #8. Juli 2008, 09:10 Uhr, Ortszeit Time.local(2008, 7, 8, 9, 10) # 8. Juli 2008, 09:10 UTC Time.utc(2008, 7, 8, 9, 10) #8. Juli 2008, 09:10:11 GMT (entspricht UTC) Time.gm(2008, 7, 8, 9, 10, 11)

Das folgende Beispiel ruft alle Komponenten in einem Array ab:

[sec,min,hour,day,month,year,wday,yday,isdst,zone]

Probieren Sie das folgende Beispiel aus:

Beispiel

#!/usr/bin/ruby -w time = Time.new values = time.to_a p values

Die Ausgabe des obigen Beispiels ist:

[39, 25, 15, 17, 9, 2015, 4, 260, false, "CST"]

Dieses Array kann an dieTime.utcoderTime.localFunktion übergeben werden, um verschiedene Formate des Datums zu erhalten, wie unten gezeigt:

Beispiel

#!/usr/bin/ruby -w time = Time.new values = time.to_a puts Time.utc(*values)

Die Ausgabe des obigen Beispiels ist:

2015-09-17 15:26:09 UTC

Das Folgende ist eine Möglichkeit, die Zeit zu erhalten, die Anzahl der Sekunden seit der Epoche (plattformabhängig):

#Gibt die Anzahl der Sekunden seit der Epoche zurück time = Time.now.to_i #Sekunden in ein Time-Objekt umwandeln Time.at(time) #Gibt die Anzahl der Sekunden seit der Epoche zurück, einschließlich Mikrosekunden time = Time.now.to_f

Zeitzonen und Sommerzeit

Sie können TimeTimeObjekte verwenden, um alle Informationen zu Zeitzonen und Sommerzeit abzurufen, wie unten gezeigt:

time = Time.new #Hier ist die Erklärung: time.zone #=> "UTC" Gibt die Zeitzone zurück⟦⟧time time.utc_offset #=> 0: UTC hat 0 Sekunden Offset relativ zu UTC time.zone #=> "PST" (oder andere Zeitzone) time.isdst #=> false: wenn UTC keine Sommerzeit (DST) hat time.utc? #=> true: wenn in der UTC-Zeitzone time.localtime #In lokale Zeitzone umwandeln time.gmtime #Zurück nach UTC umwandeln time.getlocal #Gibt ein neues Time-Objekt in der lokalen time.getutc #Gibt ein neues Time-Objekt in UTC zurück

Formatieren von Time und Date

Es gibt viele Möglichkeiten, Datum und Uhrzeit zu formatieren. Das folgende Beispiel zeigt einige davon:

Beispiel

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

Die Ausgabe des obigen Beispiels ist:

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

Zeitformatierungsdirektiven

Die in der folgenden Tabelle aufgeführten Direktiven werden mit derTime.strftime-Methode verwendet.

DirektiveBeschreibung
%aAbgekürzter Name des Wochentags (z. B. So).
%AVollständiger Name des Wochentags (z. B. Sonntag).
%bAbgekürzter Name des Monats (z. B. Jan).
%BVollständiger Name des Monats (z. B. Januar).
%cBevorzugte lokale Datums- und Zeitdarstellung.
%dTag des Monats (01 bis 31).
%HStunde des Tages, 24-Stunden-Format (00 bis 23).
%IStunde des Tages, 12-Stunden-Format (01 bis 12).
%jTag des Jahres (001 bis 366).
%mMonat des Jahres (01 bis 12).
%MMinute der Stunde (00 bis 59).
%pMeridian-Anzeige (AM oder PM).
%SSekunde der Minute (00 oder 60).
%UWochennummer des aktuellen Jahres, beginnend mit dem ersten Sonntag (als erster Tag der ersten Woche) (00 bis 53).
%WWochennummer des aktuellen Jahres, beginnend mit dem ersten Montag (als erster Tag der ersten Woche) (00 bis 53).
%wWochentag (Sonntag ist 0, 0 bis 6).
%xBevorzugte Darstellung nur für das Datum, ohne Uhrzeit.
%XBevorzugte Darstellung nur für die Uhrzeit, ohne Datum.
%yJahresdarstellung ohne Jahrhundert (00 bis 99).
%YJahr mit Jahrhundert.
%ZName der Zeitzone.
%%%-Zeichen.

Zeitarithmetik

Sie können einfache Arithmetik mit Zeit durchführen, wie unten gezeigt:

now = Time.now #Aktuelle Zeit puts now past = now - 10 #vor 10 seconds. Time - number => Time puts past future = now + 10 #10 seconds von jetzt an. Time + number => Time puts future diff = future - now #=> 10 Time - Time => seconds puts diff

Die Ausgabe des obigen Beispiels ist:

2015-09-17 15:27:08 +0800
2015-09-17 15:26:58 +0800
2015-09-17 15:27:18 +0800
10.0
Andere Erweiterungen