Módulo Zulu en Python

Zulu es un reemplazo directo para DateTime nativo. En esto, todos los objetos DateTime se convierten a UTC y también se almacenan como UTC. Hay un contorno entre UTC y las zonas horarias. Por lo tanto, la representación de las zonas horarias solo se aplica a las conversiones a DateTime ingenuo. Admite formato de string múltiple utilizando directivas strptime strftime y patrones de fecha Unicode.

Instalación

Para instalar este módulo, escriba el siguiente comando en la terminal.

pip install zulu

Módulo de clases de zulú

  • zulu.Zulu: la clase Zulu utilizada para representar un objeto UTC DateTime inmutable. Cualquier información de zona horaria que se le proporcione se convertirá de zona horaria a UTC. Si no se proporciona información de la zona horaria, se supone que DateTime es un valor UTC. Todos los tipos de aritmética se realizan en el objeto Fundamental UTC DateTime. En este sentido, Zulu no tiene idea de cambiar la zona horaria. A pesar de esto, la localización ocurre solo cuando un objeto Zulu tiene formato de string.

    Funciones o métodos de clase

    1. now() : – Devuelve la fecha y hora UTC actual como objeto Zulu.

    import zulu
      
      
    dt = zulu.now()
    print("Today date and time is:", dt)

    Producción:

    La fecha y hora de hoy es: 2020-04-17T16:10:15.708064+00:00

    2. parse(obj, format=None, default_tz=None):- Buscará una string con formato ISO8601 o una marca de tiempo POSIX de forma predeterminada. Al asumir la zona horaria UTC si no hay zona horaria, devuelve el análisis de objetos Zulu de obj.

    import zulu
      
      
    print("Zulu object when timezone is passed:",
          zulu.parse('2020-04-17T16:10:15.708064+00:00'))
      
    print("Zulu object when only date is passed:"
          zulu.parse('2020-04-17'))
      
    print("Zulu object when date and time is passed:",
          zulu.parse('2020-04-17 16:10'))
      
    print("Zulu object when ISO8601 is passed as formats:",
          zulu.parse('2020-04-17T16:10:15.708064+00:00',
                     zulu.ISO8601))
      
    print("Zulu object when Default timezone is used :"
          zulu.parse('2020-04-17'
                     default_tz ='US/Eastern'))

    Producción:

    Objeto Zulu cuando se pasa la zona horaria: 2020-04-17T16:10:15.708064+00:00
    Objeto Zulu cuando solo se pasa la fecha: 2020-04-17T00:00:00+00:00
    Objeto Zulu cuando se pasa la fecha y la hora: 2020-04-17T16:10:00+00:00
    Objeto Zulu cuando se pasa ISO8601 como formatos: 2020-04-17T16:10:15.708064+00:00
    Objeto Zulu cuando se usa la zona horaria predeterminada: 2020-04-17T04:00 :00+00:00

    3. format(format=None, tz=None, locale=’en_US_POSIX’) : Devuelve la fecha y hora de la string usando el formato de formato de string. Al convertir a la zona horaria tz primero opcionalmente.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064+00:00')
      
    print("The Datetime string without timezone is:"
          dt.format('% m/% d/% y % H:% M:% S % z'))
      
    print("The Datetime string without timezone is:"
          dt.format('MM / dd / YY HH:mm:ss Z'))
      
    print("The Datetime string when timezone is given  is:",
          dt.format('% Y-% m-% d % H:% M:% S % z'
                    tz ='US/Eastern'))
      
    print("The Datetime string when timezone is given as local is:"
          dt.format('%Y-%m-%d %H:%M:%S %z'
                    tz ='local'))

    Producción:

    La string de fecha y hora sin zona horaria es: 17/04/20 16:10:15 +0000 La string de fecha y hora
    sin zona horaria es: 17/04/20 16:10:15 +0000
    La string de fecha y hora cuando se proporciona la zona horaria es: 2020-04 -17 12:10:15-0400
    La string de fecha y hora cuando la zona horaria se proporciona como local es: 2020-04-17 21:40:15+0530

    4. rango (fotograma, inicio, final): el rango de instancias de Zulu se devuelve de principio a fin y en pasos del marco de tiempo dado.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064+00:00')
      
    range1 = list(zulu.range('hour', dt, 
                             dt.shift(hours = 4)))
    range2 = list(zulu.range('minute', dt, 
                             dt.shift(minutes = 4)))
      
    print("The range when time frame is in hour:"
          range1)
    print("The range when time frame is in minute:",
          range2)

    Producción:

    El rango cuando el marco de tiempo está en horas: [<Zulu [2020-04-17T16:10:15.708064+00:00]>,
    <Zulu [2020-04-17T17:10:15.708064+00:00]>,
    <Zulu [2020-04-17T18:10:15.708064+00:00]>,
    <Zulu [2020-04-17T19:10:15.708064+00:00]>]
    El rango cuando el marco de tiempo está en minutos: [<Zulu [2020 -04-17T16:10:15.708064+00:00]>,
    <Zulú [2020-04-17T16:11:15.708064+00:00]>,
    <Zulú [2020-04-17T16:12:15.708064+00:00 ]>,
    <Zulú [2020-04-17T16:13:15.708064+00:00]>]

    5. cambio (otro = ninguno, años = 0, meses = 0, semanas = 0, días = 0, horas = 0, minutos = 0, segundos = 0, microsegundos = 0): puede cambiar la fecha y hora hacia adelante o hacia atrás usando un timedelta que se crea a partir de los argumentos que pasan y se devuelve una nueva instancia de Zulu.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064+00:00')
    shifted1 = dt.shift(hours =-5, minutes = 10)
      
    print("The shifted time is:", shifted1)
      
    shifted2 = dt.shift(minutes = 55, seconds = 11,
                        microseconds = 10)
    print("The new shifted time is:", shifted2)

    Producción:

    The shifted time is: 2020-04-17T11:20:15.708064+00:00
    The new shifted time is: 2020-04-17T17:05:26.708074+00:00
    

    6. agregar (otro = ninguno, años = 0, meses = 0, semanas = 0, días = 0, horas = 0, minutos = 0, segundos = 0, microsegundos = 0): agrega tiempo usando un timedelta creado a partir del argumentos pasados ​​y se devuelve una nueva instancia de Zulu. El primer argumento es un objeto ‘timedelta o dateutil.relativedelta en ese caso, se ignoran otros argumentos y en este objeto de fecha y hora se agrega.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064+00:00')
      
    shifted = dt.add(minutes = 5)
    print("The new shifted time zone is :", shifted)

    Producción:

    La nueva zona horaria cambiada es: 2020-04-17T16:15:15.708064+00:00

    7. restar (otro = ninguno, años = 0, meses = 0, semanas = 0, días = 0, horas = 0, minutos = 0, segundos = 0, microsegundos = 0): resta tiempo usando un timedelta creado a partir de la argumentos pasados ​​y se devuelve una nueva instancia de Zulu. Un objeto Zulu, datetime, timedelta o dateutil.relativedelta puede ser el primer argumento en ese caso, se ignoran otros argumentos y en este objeto de fecha y hora se resta.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064+00:00')
    shifted1 = dt.subtract(hours = 5)
    shifted2 = dt.subtract(hours = 9).add(minutes = 56)
      
    print("The new shifted timezone is:", shifted1)
    print("The new shifted timezone using both add\
     and subtract is:", shifted2)

    Producción:

    La nueva zona horaria cambiada es: 2020-04-17T11:10:15.708064+00:00
    La nueva zona horaria cambiada usando suma y resta es: 2020-04-17T08:06:15.708064+00:00

    8. replace(año=Ninguno, mes=Ninguno, día=Ninguno, hora=Ninguno, minuto=Ninguno, segundo=Ninguno, microsegundo=Ninguno, tzinfo=Ninguno, *, fold=Ninguno): reemplaza los atributos de fecha y hora y un se devuelve una nueva instancia de Zulu.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064+00:00')
      
    replaced1 = dt.replace(day = 23, hour = 15)
    print("Replaced time is:", replaced1)
      
    replaced2 = dt.replace(minute = 10, second = 11,
                           microsecond = 18)
    print("The new replaced time is:", replaced2)

    Producción:

    La hora reemplazada es: 2020-04-23T15:10:15.708064+00:00
    La nueva hora reemplazada es: 2020-04-17T16:10:11.000018+00:00

    9. copy(): devuelve una nueva instancia ‘Zulu’ pero con el mismo valor de fecha y hora.
    Devoluciones
    zulú

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064 + 00:00')
    print("The copied datetime is:", dt.copy())

    Producción:

    La fecha y hora copiada es: 2020-04-17T16:10:15.708064+00:00

    Dado que Zulu es inmutable. Por lo tanto, cambiar, reemplazar y copiar devuelven nuevas instancias de Zulu mientras cambia la instancia original.

    10. span(frame, count=1): los dos nuevos objetos Zulu se devuelven en relación con el lapso de tiempo entre este objeto y el marco de tiempo que se está dando. De forma predeterminada, el número de fotogramas que se está abarcando es 1. Devuelve un tupla (start_of_frame, end_of_frame).

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064 + 00:00')
      
    print("The span of a century:", dt.span('century'))
    print("The span of a month:", dt.span('month'))
    print("The span of a day:", dt.span('day'))
    print("The span of a decade:", dt.span('decade'))
    print("The span of a century with given count is:",
           dt.span('century', count = 3))

    Producción:

    El lapso de un siglo: (<Zulu [2000-01-01T00:00:00+00:00]>, <Zulu [2099-12-31T23:59:59.999999+00:00]>)
    El lapso de un mes : (<Zulu [2020-04-01T00:00:00+00:00]>, <Zulu [2020-04-30T23:59:59.999999+00:00]>)
    El lapso de un día: (<Zulu [ 2020-04-17T00:00:00+00:00]>, <Zulu [2020-04-17T23:59:59.999999+00:00]>)
    El lapso de una década: (<Zulu [2020-01-01T00 :00:00+00:00]>, <Zulu [2029-12-31T23:59:59.999999+00:00]>)
    El lapso de un siglo con la cuenta dada es: (<Zulu [2000-01-01T00: 00:00+00:00]>, <Zulú [2299-12-31T23:59:59.999999+00:00]>)

    11. span_range(frame, start, end): se devuelve un rango de intervalos de tiempo desde el inicio dado hasta el final en los pasos del marco de tiempo dado.

    import zulu
      
      
    start = zulu.parse('2020-04-17T16:10:15.708064+00:00')
    end = zulu.parse('2020-04-17T22:10:15.708064+00:00')
      
    for span in zulu.span_range('hour', start, end):
        print(span)

    Producción:

    (<Zulú [2020-04-17T16:00:00+00:00]>, <Zulú [2020-04-17T16:59:59.999999+00:00]>)
    (<Zulú [2020-04-17T17:00] :00+00:00]>, <Zulú [2020-04-17T17:59:59.999999+00:00]>)
    (<Zulú [2020-04-17T18:00:00+00:00]>, <Zulú [2020-04-17T18:59:59.999999+00:00]>)
    (<Zulú [2020-04-17T19:00:00+00:00]>, <Zulú [2020-04-17T19:59:59.999999+ 00:00]>)
    (<Zulú [2020-04-17T20:00:00+00:00]>, <Zulú [2020-04-17T20:59:59.999999+00:00]>)
    (<Zulú [2020 -04-17T21:00:00+00:00]>, <Zulú [2020-04-17T21:59:59.999999+00:00]>)

    12. start_of(frame): para esta fecha y hora, devuelve el inicio del marco de tiempo dado f.

    13. start_of_day() : para esta fecha y hora, devuelve un nuevo objeto/conjunto Zulu al comienzo del día.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064 + 00:00')
    print("The start of month is:", dt.start_of('month'))
    print("The start of day is:", dt.start_of_day())

    Producción:

    The start of month is: 2020-04-01T00:00:00+00:00
    The start of day is: 2020-04-17T00:00:00+00:00
    

    Otras funciones start_of son:

    Nombre de la función Descripción
    inicio_de_siglo() Regrese un nuevo conjunto zulú para esta fecha y hora al comienzo del siglo.
    inicio_de_década() Regrese un nuevo conjunto Zulu para esta fecha y hora al comienzo de la década.
    inicio_de_hora() Devuelve un nuevo conjunto Zulu para esta fecha y hora al comienzo de la hora.
    comienzo_del_minuto() Devuelve un nuevo conjunto Zulu para esta fecha y hora al comienzo del minuto.
    inicio_de_mes() Devuelva un nuevo conjunto Zulu para esta fecha y hora al comienzo del mes.
    inicio_de_segundo() Devuelva un nuevo conjunto Zulu para esta fecha y hora al comienzo de la segunda.
    inicio_de_año() Devuelva un nuevo conjunto Zulu para esta fecha y hora al comienzo del año.

    14. end_of(frame, count=1): para esta fecha y hora, devuelve el final del marco de tiempo dado. f. Por defecto, el número de fotogramas que se está abarcando es 1.

    15. end_of_day(count=1): para esta fecha y hora, devuelve un nuevo objeto/conjunto Zulu al final del día.
    Por defecto, el número de fotogramas que se está expandiendo es 1.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064+00:00')
      
    print("The end of month is:", dt.end_of('month', 1))
    print("The end of day is without count:", dt.end_of_day())
    print("The end of day is with the count of 2:", dt.end_of_day(2))

    Producción:

    El final del mes es: 2020-04-30T23:59:59.999999+00:00
    El final del día es sin contar: 2020-04-17T23:59:59.999999+00:00
    El final del día es con la cuenta de 2 : 2020-04-18T23:59:59.999999+00:00

    Otras funciones end_of son:

    Nombre de la función Descripción
    fin_de_siglo(recuento=1) Devuelva un nuevo conjunto zulú para esta fecha y hora hasta el final del siglo.
    end_of_decade(recuento=1) Devuelva un nuevo conjunto Zulu para esta fecha y hora hasta el final de la década.
    fin_de_hora(recuento=1) Devuelve un nuevo conjunto Zulu para esta fecha y hora al final de la hora.
    fin_de_minuto(recuento=1) Devuelve un nuevo conjunto Zulu para esta fecha y hora al final del minuto.
    fin_de_mes(recuento=1) Devuelva un nuevo conjunto Zulu para esta fecha y hora al final del mes.
    fin_de_segundo(recuento=1) Devuelve un nuevo conjunto Zulu para esta fecha y hora al final del segundo.
    fin_de_año(recuento=1) Devuelva un nuevo conjunto Zulu para esta fecha y hora hasta el final del año.

    16. time_from(dt, **options) : Devuelve la diferencia entre este y otro datetime dado en ‘time ago’ .
    Parámetros

    • dtime: un objeto de fecha y hora.
    • Devuelve
      str

    17. time_from_now(**opciones): Devuelve la diferencia entre este y ahora en “hace tiempo”.

    18. time_to(dt, **opciones) : Devuelve la diferencia entre este datetime y otro datetime en “time to”.

    19. time_to_now(**options): devuelve la diferencia entre esta fecha y hora y ahora en «time to».

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064+00:00')
      
    print("The difference between this time and end of the day is:",
          dt.time_from(dt.end_of_day()))
    print("The difference between this time and end of the day is:",
          dt.time_to(dt.end_of_day()))
    print("The difference between this time and start of the day is:",
          dt.time_from(dt.start_of_day()))
    print("The difference between this time and start of the day is:",
          dt.time_to(dt.start_of_day()))
      
    print("The difference is", dt.time_from_now())
    print("The difference is", dt.time_to_now())

    Producción:

    La diferencia entre esta hora y el final del día es: hace 8 horas
    La diferencia entre esta hora y el final del día es: en 8 horas
    La diferencia entre esta hora y el comienzo del día es: en 16 horas
    La diferencia entre esta hora y el comienzo del día es: hace 16 horas
    La diferencia es hace 2 días
    La diferencia es en 2 días

    20. astimezone(tz=’local’): devuelve el objeto nativo de fecha y hora desplazado a la zona horaria dada. Por defecto, la zona horaria es local.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064 + 00:00')
    local = dt.astimezone()
      
    print("Local timezone is", local)
      
    pacific = dt.astimezone('US / Pacific')
    print("Pacific timezone is:", pacific)

    Producción:

    La zona horaria local es 2020-04-17 21:40:15.708064+05:30 La
    zona horaria del Pacífico es: 2020-04-17 09:10:15.708064-07:00

    21. timetuple() : Devuelve la tupla de tiempo.

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064 + 00:00')
    print("The timetuple is:", dt.timetuple())

    PRODUCCIÓN

    El timetuple es: time.struct_time(tm_year=2020, tm_mon=4, tm_mday=17, tm_hour=16, tm_min=10, tm_sec=15, tm_wday=4, tm_yday=108, tm_isdst=-1)

    22. utcnow() : Devuelve la fecha y hora UTC actual.

    23. utcoffset() : Devuelve la diferencia en horas, minutos y segundos del tiempo universal correspondiente para un lugar en particular.

    24. utctimetuple() : Devuelve la tupla de tiempo UTC coordinada con time.localtime()

    import zulu
      
      
    dt = zulu.parse('2020-04-17T16:10:15.708064 + 00:00')
      
    print("The current UTC datetime is:", dt.utcnow())
    print("The utcoffest is:", dt.utcoffset())
    print("The utctimetuple is:", dt.utctimetuple())

    Producción:

    La fecha y hora UTC actual es: 2020-04-19T07:17:30.162600+00:00
    El utcoffest es: 0:00:00
    El utctimetuple es: time.struct_time(tm_year=2020, tm_mon=4, tm_mday=17, tm_hour= 16, tm_min=10, tm_sec=15, tm_wday=4, tm_yday=108, tm_isdst=0)

    Otras funciones en esta clase son:

    Nombre de la función Descripción
    tiempoc() Devuelve una string de estilo ctime().
    fecha() Devuelve un objeto de fecha pero con el mismo año, mes y día y en el mismo orden.
    fecha y hora Devuelve un objeto de fecha y hora nativo.
    fechahoratuple() Devuelve una tupla de fecha y hora que contiene año, mes, día, hora, minuto, segundo, microsegundo, tzoneinfo.
    fechatuple() Devuelve una tupla de fecha que contiene año, mes, día.
    días_en_mes() Devuelve el número total de días del mes.
    horario de verano() Volver al horario de verano
    es_después (otro) Devuelve si esta fecha y hora es posterior a otra o no
    es_antes (otro) Devuelve si esta fecha y hora es anterior a otra o no
    está_entre(comienzo, fin) Devuelve si esta fecha y hora está entre el inicio y el final inclusive o no
    es_año_bisiesto() Devuelve si el año de esta fecha y hora es un año bisiesto o no.
    está_en_o_después(otro) Devuelve si esta fecha y hora está en o después de otra
    está_en_o_antes (otro) Devuelve si esta fecha y hora es igual o anterior a otra
    isocalendario() Devuelve una tupla de 3 que contiene el año ISO, el número de semana y el día de la semana
    isoformato() Devuelve una string en formato ISO 8601, es decir. AAAA-MM-DDTHH:MM:SS[.mmmmmm][+HH:MM].
    isodía de la semana() Devuelve el día de la semana representado por la fecha Ej. Lunes == 1, Martes == 2. . . domingo ==7
    ingenuo Devuelve un objeto de fecha y hora nativo.
    strftime() Formato de retorno: string de estilo strftime().
    strptime() String de retorno, formato: nueva fecha y hora que se analiza a partir de una string.
    tiempo() Devuelve un objeto de hora con la misma hora pero con timezoneinfo=None
    tiempotz() Devuelve un objeto de hora pero con la misma hora y timezoneinfo.
    Este Dia() Devuelve la fecha actual o la fecha y hora.
    toordinal() Devuelve el ordinal juliano/gregoriano proléptico.
    tzname() Devuelve el nombre de la zona horaria asociada con el objeto de fecha y hora.
    utcfromtimestamp(marca de tiempo) Devuelve un objeto Zulu desde una marca de tiempo POSIX.
    día laborable() Devuelve el día de la semana representado por la fecha. lunes == 0, martes == 1. . . domingo ==6
    desdefechahora(dt) Devuelve un objeto Zulu desde un objeto nativo de fecha y hora.
    fromgmtime(estructura) Devuelve un objeto Zulu de una tupla como la devuelta por time.gmtime que representa una fecha y hora UTC.
    desdehoralocal(estructura) Devuelve un objeto Zulu de una tupla como la devuelta por time.localtime que representa una fecha y hora local.
    de ordinal(ordinal) Retorna el objeto zulú de un ordinal juliano/gregoriano proléptico.
    fromtimestamp(timestamp, tz=tzutc()) Devuelve el objeto Zulu desde una marca de tiempo POSIX.
  • zulu.Delta: –
    Es una versión extendida de datetime.timedelta que proporciona una nueva funcionalidad.

    Funciones o métodos de clase

    1. parse_delta (obj): devuelve el objeto Delta analizado desde el obj dado.

    import zulu
      
      
    delta1 = zulu.parse_delta('4h 45m')
    delta2 = zulu.parse_delta('-4h 45m')
      
    print("The delta is:", delta1)
    print("The delta is:", delta2)

    Producción:

    The delta is: 4:45:00
    The delta is: -1 day, 19:15:00
    

    2. formato (formato = ‘largo’, granularidad = ‘segundo’, umbral = 0.85, add_direction = False, locale = Ninguno): devuelve timedelta como una string formateada.

    import zulu
      
      
    delta = zulu.parse_delta('4h 45m')
      
    print("The timedelta with given granularity is:"
          delta.format(granularity ='day'))
      
    print("The timedelta with given locale is:",
          delta.format(locale ='de'))
      
    print("The timedelta with given locale and add_direction is:",
          delta.format(locale ='fr', add_direction = True))
      
    print("The timedelta with given threshold is:"
          delta.format(threshold = 5))
      
    print("The timedelta with given threshold and granularity is:"
          delta.format(threshold = 155, granularity ='minute'))

    Producción:

    El timedelta con una granularidad determinada es: 1 día
    El timedelta con una configuración regional dada es: 5 Stunden
    El timedelta con una ubicación determinada y add_direction es: dans 5 heures
    El timedelta con un umbral determinado es: 285 minutos
    El timedelta con un umbral determinado y una granularidad es: 285 minutos

    3. fromtimedelta(delta): desde un objeto timedelta nativo, devuelve un objeto Delta.

    import zulu
      
      
    delta = zulu.parse_delta('4h 45m')
    delta1 = zulu.parse_delta('6h 42m 11s')
      
    print("The timedelta is:", delta.fromtimedelta(delta1))

    Producción:

    The timedelta is: 6:42:11
    
  • zulu.ParseError: – Provocó
    una excepción cuando un objeto no se puede analizar como una fecha y hora.

Publicación traducida automáticamente

Artículo escrito por nishthagoel712 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *