TimeZones 1.0.2 License Info

TimeZones 1.0.2

Biblioteca de Gestión de Zonas Horarias

Descripción

TimeZonesXS es una clase utilitaria para manejar conversiones entre zonas horarias y obtener información sobre offsets UTC. Proporciona métodos sencillos para trabajar con diferentes husos horarios en aplicaciones .NET.

Métodos Principales

GetTimeZones()

Propósito: Obtiene todas las zonas horarias disponibles en el sistema
Retorna: ReadOnlyCollection<TimeZoneInfo>
Descripción:

  • Lista completa de zonas horarias configuradas en el sistema operativo
  • Útil para mostrar opciones al usuario o para operaciones de selección

ConvertTimeZoneToAnother()

Propósito: Convierte una fecha/hora entre zonas horarias
Parámetros:

  • origin: DateTime original
  • destination: Zona horaria destino (TimeZoneInfo)
  • originOffset: Offset UTC de la zona horaria origen

Retorna: DateTimeOffset convertido
Descripción:

  • Mantiene la precisión temporal considerando el offset original
  • Usa DateTimeOffset para preservar información de zona horaria

GetOffsetFromTimeZoneInfo()

Propósito: Obtiene el offset UTC para una zona horaria específica en un momento dado
Parámetros:

  • datetime: Fecha/hora de referencia
  • zone: Zona horaria a evaluar

Retorna: TimeSpan con el offset UTC
Descripción:

  • Considera cambios por horario de verano/invierno
  • Útil para cálculos precisos de diferencias horarias

Características Clave

  • Interfaz asíncrona: Todos los métodos retornan Task para compatibilidad con patrones modernos
  • Precisión horaria: Maneja correctamente offsets y conversiones
  • Basado en estándares: Utiliza los tipos TimeZoneInfo y DateTimeOffset de .NET
  • Sencillez: Abstraction simple sobre las APIs nativas de .NET

Ejemplo de Uso

var tzService = new TimeZonesXS();

// Obtener zonas disponibles
var zones = await tzService.GetTimeZones();

// Obtener offset actual para una zona
var offset = await tzService.GetOffsetFromTimeZoneInfo(DateTime.Now, TimeZoneInfo.Local);

// Convertir hora actual a otra zona
var convertedTime = await tzService.ConvertTimeZoneToAnother(
    DateTime.Now, 
    TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"), 
    offset);