English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Time La clase en Ruby se utiliza para representar fechas y horas. Se basa en la fecha y hora del sistema proporcionada por el sistema operativo. Esta clase puede no poder representar 197O antes de 0 años o 2038 Fecha después del año.
Este tutorial le presentará todos los conceptos importantes de fecha y hora.
A continuación, se muestra un ejemplo simple de cómo obtener la fecha y hora actual:
#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time1 = Time.new puts "Hora actual : " + time1.inspect # Función igual a Time.now time2 = Time.now puts "Hora actual : " + time2.inspect
El resultado de la ejecución de los ejemplos anteriores es:
Hora actual : 2015-09-17 15:23:14 +0800 Hora actual : 2015-09-17 15:23:14 +0800
Podemos usar Time El objeto para obtener varios componentes de fechas y horas. Vea el siguiente ejemplo:
#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- time = Time.new # Componentes de Time puts "Hora actual : " + time.inspect puts time.year # => año de la fecha puts time.month # => mes de la fecha (1 a 12) puts time.day # => día del mes (1 a 31) puts time.wday # => día de la semana en la semana (0 es domingo) puts time.yday # => 365:día del año puts time.hour # => 23:24 Formato de 12 horas puts time.min # => 59 puts time.sec # => 59 puts time.usec # => 999999:microsegundos puts time.zone # => "UTC": nombre de la zona horaria
El resultado de la ejecución de los ejemplos anteriores es:
Hora actual : 2015-09-17 15:24:44 +0800 2015 9 17 4 260 15 24 44 921519 CST
Estas funciones se pueden usar para formatear fechas en formatos estándar, como se muestra a continuación:
# Julio 8, 2008 Time.local(2008, 7, 8) # Julio 8, 2008, 09:10am, hora local Time.local(2008, 7, 8, 9, 10) # Julio 8, 2008, 09:10 UTC Time.utc(2008, 7, 8, 9, 10) # Julio 8, 2008, 09:10:11 GMT (igual que UTC) Time.gm(2008, 7, 8, 9, 10, 11)
A continuación, se muestra cómo obtener todos los componentes del array:
[seg, min, hora, día, mes, año, wday, yday, isdst, zone]
Pruebe el siguiente ejemplo:
#!/usr/bin/ruby -w time = Time.new values = time.to_a p values
El resultado de la ejecución de los ejemplos anteriores es:
[39, 25, 15, 17, 9, 2015, 4, 260, false, "CST"]
Este array se puede pasar a Time.utc o Time.local La función para obtener diferentes formatos de fechas, como se muestra a continuación:
#!/usr/bin/ruby -w time = Time.new values = time.to_a puts Time.utc(*values)
El resultado de la ejecución de los ejemplos anteriores es:
2015-09-17 15:26:09 UTC
A continuación, se muestra cómo obtener la hora de la manera, los segundos desde la era (relacionado con la plataforma):
# Devuelve los segundos desde la era time = Time.now.to_i # Convierte los segundos en un objeto Time Time.at(time) # Devuelve los segundos desde la era, incluyendo los microsegundos time = Time.now.to_f
para obtener toda la información relacionada con la zona horaria y el horario de verano, como se muestra a continuación: Time Se puede usar
time = Time.new # Aquí hay una explicación time.zone # => "UTC": Devuelve la zona horaria time.utc_offset # => 0: UTC es el desplazamiento de 0 segundos con respecto a UTC time.zone # => "PST" (u otra zona horaria) time.isdst # => false: Si UTC no tiene DST (horario de verano) time.utc? # => true: Si está en la zona horaria UTC time.localtime # Convertir a la zona horaria local time.gmtime # Convertir a UTC time.getlocal # Devuelve un nuevo objeto Time en la zona horaria local time.getutc # Devuelve un nuevo objeto Time en UTC
Hay varias formas de formatear la fecha y la hora. A continuación se muestra un ejemplo de algunas de ellas:
#!/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)
El resultado de la ejecución de los ejemplos anteriores es:
2015-09-17 15:26:42 +0800 Jue Sep 17 15:26:42 2015 2015-09-17 15:26:42 +0800 2015-09-17 15:26:42
Las instrucciones y métodos enumerados en la siguiente tabla Time.strftime Usar juntos.
Instrucción | Descripción |
---|---|
%a | Abreviatura del nombre del día de la semana (por ejemplo, Sun). |
%A | Nombre completo del día de la semana (por ejemplo, Sunday). |
%b | Abreviatura del nombre del mes (por ejemplo, Jan). |
%B | Nombre completo del mes (por ejemplo, January). |
%c | Representación preferida de la fecha y la hora local. |
%d | El día en el mes (01 a 31) |
%H | La hora en el día,24 Sistema horario (00 a 23) |
%I | La hora en el día,12 Sistema horario (01 a 12) |
%j | El día del año actual (001 a 366) |
%m | El mes del año actual (01 a 12) |
%M | El minuto en la hora (00 a 59) |
%p | Indicación del meridiano (AM o PM). |
%S | El segundo segundo en el minuto (00 o 60). |
%U | La semana del año actual, comenzando el primer domingo (como el primer día de la primera semana) de 00 a 53) |
%W | La semana del año actual, comenzando el primer lunes (como el primer día de la primera semana) de 00 a 53) |
%w | ¿Cuál es el día de la semana en la semana (domingo es 0, de 0 a 6) |
%x | Formato de representación preferente sin hora y solo fecha. |
%X | Formato de representación preferente sin fecha y solo hora. |
%y | Año sin siglo (00 a 99) |
%Y | Año con siglo. |
%Z | Nombre de la zona horaria. |
%% | % carácter. |
Puedes hacer cálculos aritméticos con el tiempo, como se muestra a continuación:
now = Time.now # Tiempo actual puts now past = now - 10 # 10 Antes de X segundos. Time - number => Time puts past future = now + 10 # Desde ahora 10 Después de X segundos. Time + number => Time puts future diff = future - now # => 10 Time - Time => número de segundos puts diff
El resultado de la ejecución de los ejemplos anteriores es:
2015-09-17 15:27:08 +0800 2015-09-17 15:26:58 +0800 2015-09-17 15:27:18 +0800 10.0