Para derivar un desfase UTC, resta la fecha y hora UTC de la fecha y hora local correspondiente, conservando cualquier cambio de fecha. En Numbers para Mac, puedes calcularlo en minutos sin elegir una zona horaria con nombre.

Esta guía es para quien comprueba la marca de tiempo de una publicación frente a su equivalente UTC. Todas las fechas de publicación que aparecen a continuación son sintéticas. La tarea consiste en obtener el desfase de ese instante de publicación y registrar lo que respaldan las pruebas.

¿Qué información necesitas antes de calcular?

Necesitas dos representaciones del mismo momento de publicación: una fecha y hora local completas, y una fecha y hora UTC completas. Confirma que ambas correspondan a la publicación, en lugar de que una corresponda a la publicación y la otra a una edición posterior. Esa relación es un requisito previo; una diferencia numérica plausible no demuestra que correspondan entre sí.

Mantén separados estos cuatro conceptos:

Concepto Ejemplo sintético Qué indica
Fecha civil 2026-07-01 Un día del calendario, sin hora ni relación con UTC
Fecha y hora locales 2026-07-01 05:25:00 Campos de calendario y reloj que aún necesitan un desfase o una zona para identificar un instante
Instante 2026-06-30T23:40:00Z Un momento concreto expresado en UTC
Desfase UTC +05:45 La diferencia entre el reloj local y UTC en ese momento
Zona horaria con nombre Un identificador de zona IANA proporcionado Un conjunto de reglas para determinar desfases en distintos instantes

Apple establece una distinción similar en Foundation: Date representa un punto en el tiempo independiente de un calendario o una zona, mientras que DateComponents representa campos de calendario evaluados con un calendario y una zona horaria. Por lo tanto, una cadena de fecha mostrada y un instante son tipos de datos distintos. Apple: Fechas y horas

Para esta hoja de cálculo, usa fechas gregorianas válidas y segundos enteros desde 00 hasta 59. Conserva las cadenas de marcas de tiempo originales junto a tus cálculos. Si alguna de las fuentes solo proporciona una fecha, o proporciona una hora sin su fecha, obtén la información que falta antes de calcular un desfase exacto.

¿Cómo funciona el cálculo del desfase?

RFC 3339 define la convención de signo como hora local menos UTC. Un resultado positivo significa que el reloj local está adelantado; uno negativo, que está atrasado. Para recuperar UTC, resta el desfase de la fecha y hora local. RFC 3339, sección 4.2

Para la primera publicación sintética, los valores emparejados son:

  • UTC: 2026-06-30T23:40:00Z
  • Local: 2026-07-01 05:25:00
  • Diferencia: 5 horas y 45 minutos positivos
  • Desfase derivado: +05:45

La fecha local es un día posterior. Contar solo las horas del reloj daría una diferencia negativa engañosa. Un cálculo explícito en minutos muestra por qué importa la fecha:

offset_minutes = 1440 × calendar_day_difference
                 + local_clock_minutes
                 - UTC_clock_minutes

calendar_day_difference = +1
local_clock_minutes = 5 × 60 + 25 = 325
UTC_clock_minutes = 23 × 60 + 40 = 1420

offset_minutes = 1440 + 325 - 1420 = 345
345 minutes = 5 hours 45 minutes

Aquí, la diferencia de días calendario significa la diferencia entre las fechas completas. No restes sus números de día del mes: el 1 de julio menos el 30 de junio es un día, aunque 1 - 30 sea negativo. La hoja de cálculo de abajo permite que el cálculo de fechas gestione el cambio de mes.

¿Cómo lo calculas en Numbers para Mac?

Necesitas tener Numbers instalado y una hoja de cálculo con una tabla. Los ejemplos usan nombres de funciones en inglés y comas como separadores. Si el editor de fórmulas espera otro separador, inserta la función desde el explorador de funciones y completa sus campos de argumentos.

1. Crea columnas con etiquetas claras

Usa la fila 1 para estas etiquetas: Campos UTC en A1, Campos locales en B1, Minutos de desfase en C1 y UTC reconstruido en D1. Estas etiquetas describen tus datos de entrada; introducir una fecha en la columna A no realiza por sí solo una conversión de zona horaria.

Selecciona las columnas A y B y, en la barra lateral Formato, abre la pestaña Celda y el menú Formato de datos para elegir Fecha y hora. Elige formatos de visualización que muestren tanto la fecha completa como la hora, incluidos los segundos. Apple documenta estos controles en su guía de formato de celdas de Numbers.

2. Construye los dos valores de forma explícita

Haz clic en A2 e introduce la siguiente fórmula. Pulsa Retorno para confirmarla:

=DATE(2026,6,30)+DURATION(0,0,23,40,0,0)

En B2, introduce:

=DATE(2026,7,1)+DURATION(0,0,5,25,0,0)

DATE recibe el año, el mes y el día como números separados, lo que evita cadenas de fecha ambiguas. DURATION recibe semanas, días, horas, minutos, segundos y milisegundos, en ese orden. Aquí, sumar una duración a cada fecha proporciona su hora. Apple: DATE, Apple: DURATION

Comprueba que A2 muestre el 30 de junio a las 23:40:00 y B2 muestre el 1 de julio a las 05:25:00. Estás representando los dos conjuntos de campos de calendario que vas a restar. Conserva el sufijo UTC original en tus notas de origen, en lugar de confiar en la apariencia de una celda de la hoja de cálculo para identificar UTC.

3. Resta local menos UTC

En C2, introduce:

=DUR2MINUTES(B2-A2)

El resultado esperado es 345. Restar los valores de fecha y hora produce una duración, y DUR2MINUTES expresa esa duración como un número de minutos. Si es necesario, establece el Formato de datos de C2 como Número. Apple: DUR2MINUTES

Para introducir o inspeccionar una fórmula, selecciona su celda y escribe =; Numbers abre el Editor de fórmulas. Si una fórmula da error, haz clic en el indicador de error para leer su explicación antes de continuar. Apple: Calcular valores usando datos de las celdas de una tabla en Numbers para Mac

4. Escribe el desfase con signo y comprueba el resultado

Convierte el número absoluto de minutos en horas enteras y minutos restantes. Para 345, son 5 horas y 45 minutos. Como el resultado es positivo, anota +05:45. Un resultado de -210 se convertiría en -03:30; el signo se aplica a todo el desfase.

En D2, introduce el cálculo inverso:

=B2-DURATION(0,0,0,C2,0,0)

Aplica a D2 el formato Fecha y hora para que muestre ambos componentes. Debería mostrar la misma fecha y hora que A2. Esto comprueba la dirección de la operación y la reconstrucción. No demuestra por sí solo que los datos originales correspondan a la misma publicación.

¿Qué ejemplos permiten detectar errores de fecha y signo?

Usa estos pares sintéticos para comprobar tu interpretación. Para cada fila adicional, construye A y B con DATE más DURATION, y después usa las referencias de celdas de esa fila en la resta.

Marca de tiempo UTC de publicación Campos locales correspondientes Minutos de desfase Desfase
2026-06-30T23:40:00Z 2026-07-01 05:25:00 345 +05:45
2026-07-01T02:15:00Z 2026-06-30 22:45:00 -210 -03:30
2026-08-31T23:30:00Z 2026-09-01 01:30:00 120 +02:00

El segundo par retrocede al día local anterior. El tercero cruza el límite de un mes con un desfase de horas enteras. Juntos, ayudan a detectar una resta invertida, fechas omitidas y la suposición de que los desfases deben contener horas enteras.

Mantén visibles suficientes decimales para detectar un resultado fraccionario en minutos. Con estos datos de entrada en segundos enteros, una fracción inesperada merece una investigación: comprueba los segundos, la precisión de los datos de entrada y si los registros realmente corresponden entre sí. No la redondees solo para obtener un desfase conocido. Los desfases numéricos de RFC 3339 tienen precisión de minutos, por lo que una discrepancia que contenga segundos no se puede representar fielmente con solo añadir un desfase HH:MM. RFC 3339, sección 4.2

¿Por qué no puedes deducir una zona horaria con nombre única?

Un desfase describe la relación en un instante. Una zona horaria con nombre proporciona reglas para determinar esa relación en otros instantes. RFC 9557 distingue explícitamente estos conceptos y explica por qué un desfase por sí solo no basta para operaciones de calendario local, como encontrar la misma hora local un día después. Por lo tanto, que un desfase coincida no demuestra que haya una única zona con nombre correspondiente. RFC 9557: definición de zona horaria

Registra el resultado como «Desfase de publicación derivado: +05:45; zona horaria con nombre: desconocida». Si más adelante obtienes un identificador de zona de la fuente, consérvalo por separado. Publicaciones emparejadas adicionales pueden revelar otros desfases, pero para elegir una zona se necesitan pruebas más allá de encontrar una entrada coincidente.

Las API de Apple siguen este sentido del cálculo. TimeZone.secondsFromGMT(for:) recibe una zona horaria existente y una fecha para calcular su desfase. El argumento de fecha se establece de forma predeterminada en la fecha actual, así que para comprobar una publicación hay que proporcionar el instante de publicación. El método no acepta un desfase para devolver la zona con nombre original. Apple: secondsFromGMT(for:)

¿Cuándo deberías detenerte y obtener datos de entrada mejores?

Sigue esta secuencia de decisiones antes de aceptar el resultado:

  1. Solo hay fechas civiles disponibles: obtén las horas y una referencia UTC. Una fecha por sí sola no identifica un instante.
  2. La referencia tiene un desfase numérico distinto de cero: conviértela a UTC usando el desfase indicado antes de usar esta hoja de cálculo.
  3. Ambos datos de entrada ya se convirtieron en instantes: conserva o recupera los campos locales originales. Restar dos representaciones del mismo instante después de normalizarlas da cero.
  4. La diferencia cambia cuando se muestran las fechas: inspecciona los valores completos almacenados. Una fecha oculta sigue formando parte del cálculo.
  5. El cálculo funciona, pero el emparejamiento no es seguro: conserva la diferencia como candidata hasta confirmar la relación con la publicación.

Numbers puede completar silenciosamente los componentes que faltan: Apple indica que, al introducir solo una hora, añade la fecha de hoy. Ocultar una fecha o una hora cambia cómo se muestra, mientras que el valor sigue disponible para los cálculos. Inspecciona la Vista inteligente de celdas si lo que aparece en la celda no deja algo claro. Apple: Dar formato a fechas, monedas y más en Numbers para Mac

Además, una marca de tiempo UTC que termina en Z establece el instante UTC, pero no la zona local original. RFC 9557 actualiza el tratamiento de Z en RFC 3339 para admitir un desfase local desconocido. Por eso, la representación local separada es esencial para esta derivación. RFC 9557, sección 2.2

Para completar la comprobación de una publicación, conserva el par original, el desfase con signo y la razón por la que los dos valores representan el mismo momento. Así obtendrás un resultado reproducible y la zona con nombre quedará como desconocida cuando las pruebas no permitan identificarla.

Fuentes