2013-02-27 4 views
-7

Comment puis-je convertir une chaîne comme "1319556419" en DateTime en C#?Comment puis-je convertir cette chaîne en un DateTime?

+3

Quel est le résultat attendu de cette conversion? –

+8

Quelle est la signification de la chaîne? Est-ce un temps unix époque? Sans savoir ce que signifie la chaîne, personne ne peut aider. – Oded

+3

ressemble à quelque chose demandé ici plusieurs fois avant .... –

Répondre

5

qui ressemble à un horodatage UNIX, le cas échéant, ce sera:

Int64 timestamp = Convert.ToInt64("1319556419"); 
DateTime newDate = new DateTime(1970,1,1).AddSeconds(timestamp); 

edit: Il est en fait secondes au lieu de millisecondes par les regards de celui-ci. Cela donne la date du 25 octobre 2011.

+0

+1 http://ideone.com/25jDcW –

+0

Je pense que votre heure de base devrait être 'new DateTime (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)' mais je ne suis pas sûr à 100%. – Rawling

+0

En ce qui concerne l'édition. De nombreux systèmes UNIX utilisent un 'Int32' (entier signé de 32 bits). Donc 'int timestamp = int.Parse (" 1319556419 ");' est naturel. Si la source est passée à l'heure UNIX 64 bits, il est prudent d'utiliser le code tel quel dans tous les cas. Voir [Problème de l'année 2038] (http://en.wikipedia.org/wiki/Year_2038_problem). –