2011-02-11 29 views
9

He estado buscando en Google esto desde hace un tiempo, pero nunca pude encontrar una respuesta a mi problema.Cómo convertir la marca de tiempo de Twitter a DateTime?

Estoy haciendo un cliente de Twitter usando C# y Windows Presentation Foundation, y no puedo encontrar la manera de cambiar las marcas de tiempo que Twitter suministra a DateTime o UNIX timestamp.

Sé que es posible con Regex, pero nunca encontré una solución.

¿Hay alguna manera fácil de hacer esto que desconozco? El formato de hora de Twitter que estoy tratando de convertir de ve así:

Fri Feb 11 23:45:15 +0000 2011 

¿Alguna idea?

Respuesta

13

Basado en un sample elsewhere, cómo sobre el uso del ParseExact method:

const string format = "ddd MMM dd HH:mm:ss zzzz yyyy"; 
my_date = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture); 
+0

Impresionante, gracias! – sammarks

5
DateTimeOffset timestamp; 
if (DateTimeOffset.TryParseExact(
    "Fri Feb 11 23:45:15 +0000 2011", 
    "ddd MMM dd HH:mm:ss K yyyy", 
    null, 
    DateTimeStyles.None, 
    out timestamp)) 
    ; // use timestamp 

Esto supone:

  • La cultura actual es la correcta para utilizar (por ejemplo, "vie", "Feb", etc.)
  • Fechas, horas, minutos y segundos están llenos 0 (por ejemplo, "vie feb 04 02:05:02 +0000 2011")
+0

+1 Aún mejor incluir una cultura que tenga los días correctos de la semana ;-) –

Cuestiones relacionadas