Hola, hemos seguido investigando y haciendo pruebas y tenemos otra opción, pero no tenemos claro que sea correcta.
Lo que hemos hecho ahora es al rellenar la propiedad de la fecha hora de generación, en el objeto le indicamos que ese DateTime tiene DateTimeKind.Utc para indicar que la hora representada es la hora UTC.
Para calcular la huella ahora la cadena para representar FechaHoraHusoGenRegistro en formato ISO 8601 no tiene un +01:00 al final sino que tiene una Z.
Luego tanto si envío ese registro de facturación desde un ordenador como desde otro con una configuración de zona horaria (huso) distinta, se envía el mismo valor y las facturas son aceptadas sin errores.
Pero tenemos la duda sobre si la hora de generación que estamos informando es la correcta.
Consultando por la web los datos de las facturas ya enviadas, tenemos
Fecha de presentación: 16-04-2025 13:28:49
Fecha de generación del registro: 2025-04-16T12:24:36Z
Estamos indicando la misma fecha y hora en los dos campos? (Los minutos y segundos varían un poco por el tiempo que he tardado entre generar el registro y enviar pero eso no me importa para este tema, solo la hora)
Preguntando a la IA me ha contestado lo siguiente:
Cita:
Cuando la fecha se marca como DateTimeKind.Utc, se establece que el valor se interpretará y se serializará en tiempo universal coordinado (UTC). Así, una fecha como 2025-04-16T12:24:36Z significa que realmente es las 12:24:36 en UTC.
Si tu otra referencia indica que la fecha de presentación es 16-04-2025 13:24:36 y esa fecha está en hora local con una configuración de huso horario de UTC+1 (como es típico en muchas zonas de Europa durante el horario estándar), entonces 12:24:36 UTC equivalen exactamente a 13:24:36.
Por tanto, aunque las cadenas de texto son diferentes (una con la "Z" y la otra con un formato local sin indicación explícita de offset), ambas representan el mismo instante en el tiempo. Este comportamiento es por lo que se espera: la fecha con el sufijo "Z" es una representación estándar para indicar que el valor está en UTC, mientras que la fecha en formato local refleja el ajuste según la configuración hora del sistema.
|
Me ha parecido una explicación bastante lógica pero no se si fiarme mucho.
Como podéis ver no domino demasiado en temas de horas y husos horarios pero podría ser que sea correcto lo que me ha dicho.
Por otra parte AEAT ha contestado como correcta pero no se si es que no lo valida o que.
En la definición del campo FechaHoraHusoGenRegistro a parte de indicar el formato, también dice:
Cita:
Fecha, hora y huso horario de generación del registro de facturación. El huso horario es el que está usando el sistema informático de facturación en el momento de generación del registro de facturación.
|
No se yo si enviando una Z en lugar de +01:00 (o el que toque), estoy indicando bien el huso horario o no seria lo correcto....
En algún otro post de este foro he visto alguien que también enviaba una Z en FechaHoraHusoGenRegistro pero no encuentro el mensaje ni se si es correcto.
Vosotros que pensáis?
Muchas gracias!!