AmigoCloud es una aplicación en la nube de caracter global. Para ayudar a los usuarios que colaboran en todo el mundo, cualquier fecha o fecha y hora se registra desde el usuario en su zona horaria local, y luego se almacena en el servidor como UTC.
UTC es el Tiempo Universal Coordinado (Coordinated Universal Time). Todos los relojes del mundo se fijan bajo esta hora. Para obtener más información, consulte la entrada de Wikipedia aquí: https://es.wikipedia.org/wiki/Tiempo_universal_coordinado
Luego, cuando alguien vea los datos en su cliente, se convertirá a su zona horaria local para que tenga sentido para ellos. Una persona en Nueva York verá un momento diferente que una persona en California.
Wikipedia también tiene una lista de zonas horarias y sus compensaciones de UTC en el siguiente artículo en inglés: https://en.wikipedia.org/wiki/List_of_UTC_time_offsets
Por ejemplo, para convertir de UTC a la hora estándar del Pacífico (PST), puede ver que su PST es UTC -8:00, lo que significa que son las 4:00 p.m. en UTC, serán las 8:00 a.m. en PST. Esto tiene sentido ya que PST está al este del meridiano 0, por lo que será mas temprano.
Exportando datos
Esto puede crear cierta confusión al exportar datos desde AmigoCloud. Por ejemplo, puede ir a las consultas avanzadas y hacer una consulta simple para el nombre de un registro y los datos que se crearon (siempre que su conjunto de datos tenga esos campos)
Fechas vistas a través de la interfaz de usuario web de AmigoCloud. Como estoy en San Francisco, veo las fechas en la zona horaria estándar del Pacífico (PST)
Luego de guardar la consulta, vamos a la lista de conjuntos de datos y la exportamos al formato de Microsoft Excel (xlsx).
Al volver a importar esa hoja de cálculo de Excel en un editor de hojas de cálculo (en este caso, Google Docs), puede ver que las fechas no coinciden:
Datos exportados con hora UTC estandar
Sabiendo que la zona horaria PST se define como UTC-8:00, podemos seguir algunos pasos simples para convertir la fecha a nuestra zona horaria local.
Convertir antes de exportar
También puede usar SQL para realizar una conversión restando el tiempo usando una consulta para restar un intervalo de tiempo de 8 horas. Puede encontrar detalles sobre las funciones de fecha y hora de PostgreSQL en su documentación de ayuda.
Una consulta de ejemplo está aquí:
select name, date_created, (date_created - INTERVAL '8 hours') as date_as_pst
from dataset_12617 order by date_created desc
La fecha PST resultante parecerá incorrecta en la interfaz de usuario, ya que AmigoCloud cree que es una fecha UTC y se convertirá a PST cuando la visualice.
date_created como PST y date_as_pst como PST - 8
Convertir después de exportar en Hojas de cálculo de Google
Primero, cree una nueva columna y agregue la fórmula = [Columna de Fecha] - ((1/24) * 8)
Esta fórmula funciona para las hojas de google porque la unidad de tiempo de día se representa detrás de escena como un número entre los valores 0-1. Si quieres restar 8 horas, simplemente multiplica 1/24 por 8.
Fórmula para convertir fechas de UTC a PST
Luego use esa fórmula para definir las fechas para todas las otras filas:
Las fechas están en UTC y PST
Convertir después de exportar en Microsoft Excel
Microsoft Excel funciona de la misma manera. La fórmula es exactamente la misma también.
Agregue una columna y use la misma fórmula
Las fechas ahora se convierten a PST
Enviar y recuperar datos directamente desde el servidor
Como se indicó anteriormente, el cliente (sitio web, aplicación móvil, etc.) será el encargado de convertir los datos de UTC a la hora local y viceversa. Sin embargo, este no es el caso al enviar y recuperar datos directamente al servidor.
Ya sea que esté utilizando la API SQL o el SubmitChange endpoint desde la biblioteca Python o Javascript, o directamente desde la API REST, usted será el encargado de realizar las conversiones de zona horaria. El servidor siempre almacenará y expondrá todas las fechas como UTC.
Enviar datos al servidor
Cuando envíe valores de fecha y hora al servidor, recuerde convertirlos a UTC por adelantado. Incluso si agrega la información de zona horaria, el servidor no los tendrá en cuenta. Entonces, por ejemplo, enviando "2015-06-16 15:07:34", "2015-06-16 15:07:34 -08: 00" o "2015-06-16 15:07:34 PST" da como resultado el mismo valor almacenado en el servidor: "2015-06-16 15:07:34 UTC". Planeamos agregar soporte para fechas y horas con información de zona horaria en el futuro.
Recuperando datos del servidor
Al recuperar valores de fecha y hora del servidor, recuerde convertirlos nuevamente a su zona horaria local.
Operaciones útiles con fechas y horas en Python
Obtenga la hora actual en el string UTC (lista para ser enviada al servidor):
import datetime utc_string = datetime.utcnow().isoformat()
Convertir fecha y hora en el string UTC (lista para ser enviada al servidor):
from pytz import utc utc_string = dt.astimezone(utc).isoformat()
Parse el string UTC del servidor a la fecha y hora con la zona horaria:
from dateutil import parser from pytz import timezone
pst = timezone('US/Pacific') dt = parser.parse(utc_string).astimezone(pst)
Operaciones útiles con fecha y hora en Javascript
Obtenga la hora actual en string UTC (lista para ser enviada al servidor):
var utcString = (new Date()).toISOString()
Convertir fecha y hora en el string UTC (lista para ser enviada al servidor):
var utcString = dt.toISOString()
Parse el string UTC del servidor a la fecha y hora con la zona horaria:
var dt = new Date(utcString); dt.setMinutes(dt.getMinutes() - dt.getTimezoneOffset())
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.