2010-06-10 12 views
5

Tengo un objeto DateTime. Quiero devolver una cadena con formato como éste a continuación:Formato datetime timezone

Jue 06 de Junio ​​de 2010 16:00:00 +0200

Este es mi código hasta ahora:

DateTime.Now.ToString("ddd, dd MMMM yyyy HH:mm:ss zzz"); 

resultado:

Jue, 10 de junio de 2010 18:33:14 02: 00

¿Hay una forma incorporada de obtener la diferencia de zona horaria formateada sin:? (sin eliminar manualmente el:. No sé si hay complicaciones, si lo hago)

+0

Buena pregunta (+1). Lo que quiero saber también Necesito saber en qué zona horaria se encuentra la fecha. Tenemos un sistema en Java que tiene muchos fudges de Fecha, pero siempre esperé que se incorporara algo en el .NET Framework para hacerlo. – Andez

Respuesta

1

parece (He buscado), no hay forma de separar la manipulación de la cadena resultante. Si usas zz obtienes solo "+02" sin embargo ... entonces podrías agregar 00, en lugar de "buscar" (regex o lo que sea) para el último: y despojarlo. DateTimeFormatInfo permite saber el separador para h: m: s, d/m/y, pero no la zona horaria; además, si DateTimeFormatInfo.TimeSeparator también afecta a la zona horaria (siendo h: m), no puede buscar: ya que no podría funcionar en todas las configuraciones regionales, en su lugar debería buscar DateTimeFormatInfo.TimeSeparator; o zz y agregue 00 al final ... Por ahora, todo se trata de mis ideas para ayudarlo.

+0

podría ser (es http://www.worldtimezone.com/wtz014.php) ... pero zz solo devuelve el +04. Depende de qué tan importante es retener la zona horaria exacta correcta. Si se necesita un tiempo exacto y preciso, tira: de lo contrario, es aceptable un error de +/- 30 minutos. – ShinTakezou

3

Tenga en cuenta que puede utilizar "o" para tener una fecha completa con zona horaria. Puede ser útil para cosas de registro.

DateTime.Now.ToString("o") => 2012-08-17T17:31:19.7538909+08:00