English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Time Klasse in Ruby wird verwendet, um Datum und Uhrzeit darzustellen. Sie basiert auf dem von dem Betriebssystem bereitgestellten Systemdatum und -uhrzeit. Diese Klasse kann möglicherweise nicht darstellen 197oder 0 Jahren zuvor 2038 Datum nach dem Jahr
Dieses Tutorial wird Ihnen alle wichtigen Konzepte von Datum und Uhrzeit näherbringen.
以下是获取当前日期和时间的简单示例:
#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time1 = Time.new puts "当前时间:" + time1.inspect # Time.now 功能相同 time2 = Time.now puts "当前时间:" + time2.inspect
Die folgenden Beispiele sind die Ausgabeergebnisse:
当前时间: 2015-09-17 15:23:14 +0800 当前时间: 2015-09-17 15:23:14 +0800
我们可以使用 Time 对象用于获取各种日期和时间的组件。请看以下示例:
#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time = Time.new # Time 的组件 puts "当前时间:" + time.inspect puts time.year # => 日期的年份 puts time.month # => 日期的月份(1 bis 12) puts time.day # => 一个月中的第几天(1 bis 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":时区名称
Die folgenden Beispiele sind die Ausgabeergebnisse:
当前时间: 2015-09-17 15:24:44 +0800 2015 9 17 4 260 15 24 44 921519 CST
以下函数可用于格式化标准格式的日期,如下所示:
# 七月 8, 2008 Time.local(2008, 7, 8) # 七月 8, 2008, 09:10am,本地时间 Time.local(2008, 7, 8, 9, 10) # 七月 8, 2008, 09:10 UTC Time.utc(2008, 7, 8, 9, 10) # 七月 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
Die folgenden Beispiele sind die Ausgabeergebnisse:
[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)
Die folgenden Beispiele sind die Ausgabeergebnisse:
2015-09-17 15:26:09 UTC
以下是获取时间的方式,自纪元以来的秒数(平台相关):
# 返回自纪元以来的秒数 time = Time.now.to_i # 将秒数转换为 Time 对象 Time.at(time) # 返回自纪元以来的秒数,包含微秒 time = Time.now.to_f
Sie können Time Objekt, um alle Informationen über Zeitzone und Sommerzeit zu erhalten, wie folgt:
time = Time.new # Hier ist die Erklärung time.zone # => "UTC":Rückgabe der Zeitzone time.utc_offset # => 0:UTC ist 0 Sekunden Versatz相对于 UTC time.zone # => "PST" (oder andere Zeitzone) time.isdst # => false:Wenn UTC keine DST (Sommerzeit) hat time.utc? # => true:Wenn im UTC-Zeitraum time.localtime # Wandlung in die lokale Zeitzone time.gmtime # Wandlung in UTC time.getlocal # Rückgabe eines neuen Time-Objekts in der lokalen Zeitzone time.getutc # Rückgabe eines neuen Time-Objekts im UTC
Es gibt mehrere Möglichkeiten, Datum und Zeit zu formatieren. Der folgende Beispiel zeigt einige davon:
#!/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 folgenden Beispiele sind die Ausgabeergebnisse:
2015-09-17 15:26:42 +0800 Do Sep 17 15:26:42 2015 2015-09-17 15:26:42 +0800 2015-09-17 15:26:42
Die in der folgenden Tabelle aufgelisteten Anweisungen und Methoden Time.strftime zusammen verwenden.
Anweisung | Beschreibung |
---|---|
%a | Abgekürzter Wochentagsname (z.B. Sun). |
%A | Vollständiger Wochentagsname (z.B. Sunday). |
%b | Abgekürzter Monatname (z.B. Jan). |
%B | Vollständiger Monatname (z.B. January). |
%c | Bevorzugte lokale Datums- und Zeitdarstellung. |
%d | Tag des Monats (01 bis 31)。 |
%H | Stunde des Tages (24 Zeitensystem (00 bis 23)。 |
%I | Stunde des Tages (12 Zeitensystem (01 bis 12)。 |
%j | Tag des Jahres (001 bis 366)。 |
%m | Monat des Jahres (01 bis 12)。 |
%M | Minute des Stunden (00 bis 59)。 |
%p | Mittag- oder Nachmittagshinweis (AM oder PM). |
%S | Sekunde des Minuten (00 oder 60). |
%U | Woche des Jahres, beginnend mit dem ersten Sonntag (als erster Tag der ersten Woche) (00 bis 53)。 |
%W | Woche des Jahres, beginnend mit dem ersten Montag (als erster Tag der ersten Woche) (00 bis 53)。 |
%w | Woche der Woche (Sonntag ist 0, 0 bis 6)。 |
%x | Prioritäres Format mit nur Datum, kein Zeit. |
%X | Prioritäres Format mit nur Zeit, kein Datum. |
%y | Jahr ohne Jahrhundert (00 bis 99)。 |
%Y | Jahr mit Jahrhundert. |
%Z | Zeitzone-Name. |
%% | % Zeichen. |
Man kann mit der Zeit einfache Arithmetik durchführen, wie folgt:
now = Time.now # aktuelle Zeit puts now past = now - 10 # 10 Sekunden zuvor. Time - number => Time puts past future = now + 10 # von jetzt an 10 Sekunden später. Time + number => Time puts future diff = future - now # => 10 Time - Time => Sekunden puts diff
Die folgenden Beispiele sind die Ausgabeergebnisse:
2015-09-17 15:27:08 +0800 2015-09-17 15:26:58 +0800 2015-09-17 15:27:18 +0800 10.0