2011-03-09 7 views
7

Estoy trabajando con un protocolo que puede incluir opcionalmente un desplazamiento de zona horaria al especificar información de fecha y hora. Mi código está escrito en C# y estamos usando el tiempo de ejecución 4.0 .NET. Veo que hay un formatting option "zzz" para incluir información de zona horaria al analizar y formatear, sin embargo, parece que los dos puntos (:) están corregidos. Por ejemplo, una fecha y hora con formato de cadena de formato personalizado (yyyyMMddHHmmsszzz) podría aparecer como:Cómo controlar el aspecto de ':' en el desplazamiento de zona horaria al analizar/formatear Fecha y hora

20100309101530-05: 00

El protocolo Estoy trabajando con no incluye los dos puntos en la zona horaria offset. Este protocolo se formatea datetimes, y esperar que indicará como:

20100309101530-0500

¿Hay una manera de controlar la apariencia de los dos puntos al analizar o de fecha y hora con un formato de formateador personalizado que incluye el ¿Offset de zona horaria?

Respuesta

7

Parece que no hay nada incorporado (puede usar zz, pero eso deja fuera los minutos).

Usted puede rodar su propia creando una instancia de un DateTimeFormatInfo, el establecimiento de TimeSeparator-string.Empty y usar eso como la IFormatProvider al llamar DateTime.ToString (y hacer la llamada explícita, si no lo está ya).

Pero francamente, usar Replace para eliminar el : no deseado del valor de retorno predeterminado es mucho más fácil.

3

que enfrentan el mismo problema, terminamos usando una extensión

public static class DateTimeExtensions 
    {   
     public static String ToSomeFormat(this DateTimeOffset dateTime) 
     { 
      return dateTime.ToString("yyyyMMddHHMMzzz").Replace(":", ""); 
     } 
    } 
Cuestiones relacionadas