Je suppose que je devrais simplement analyser la chaîne dans une date d'heure et partir de là ... mais y a-t-il une meilleure façon de faire cela? P>
3 Réponses :
Vous devez l'analyser à un objet normal DateTime code> à l'aide de quelque chose à partir de la DateTime.parse / parseexact code> famille de fonctions, puis appelez une méthode comme celle-ci: public int ToUnixTime(DateTime d)
{
var epoch = new DateTime(1970,1,1);
return (int)(d - epoch).TotalSeconds;
}
DateTime stocke interlumentalement les "ticks" (a inventé Unité de temps ) depuis "12:00:00 minuit, 1er janvier 0001 (0:00:00 UTC le 1er janvier 0001), dans le calendrier grégorien". Comme un nombre INT64 / long. DateTime bat donc unix Time facilement dans les valeurs possibles. La conversion à DateTime devrait être sans perte. P>
Tous les appels de ToString (), tout autre appel de propriétés calculera simplement les valeurs basées sur ces tiques (et paramètres de culture / fuseau horaire pour Tostring ()). Tout le reste est juste une interprétation em> de la valeur de la tick. P>
Vous devriez analyser à DateTime. Et obtenir des tiques à quelque chose comme incarcise que l'Unixtime est facile. Voir Joels Répondre pour cela. P>
Notez cependant que la précision des DateTimes et l'accuisation ne correspondent pas complètement: https://blogs.msdn.microsoft.com/ericlippert/2010/04/08/precision-et-accuracy-of-DateTime/ DateTime.now vous donnera habituellement Seules les valeurs de retour dans des étapes de 18 ms. Et même le chronomètre a des problèmes avec des valeurs <1 ms. P>
Vous pouvez utiliser le datetimeoffset code> struct, qui a un TounixTimeseconds code> (ou TounixTimemilliseconds code>) Vous pouvez utiliser: long unixTimestamp = DateTimeOffset.Parse("2018-12-27T02:23:29").ToUnixTimeSeconds();
Oui ... c'est ce que je cherchais!
Qu'est-ce qui constituerait une "meilleure façon?" Pourquoi feriez-vous cela d'une autre manière? Y a-t-il quelque chose de spécifique que vous essayez d'accomplir ou de déterminer?
Dupliqué possible de Comment obtenir l'horodatage UNIX en C # a >