2013-02-27 4 views
-7

Как преобразовать строку как "1319556419" в DateTime в C#?Как преобразовать эту строку в DateTime?

+3

Каков ожидаемый результат этого преобразования? –

+8

В чем смысл строки? Это время эпохи unix? Не зная, что строка _means_, никто не может помочь. – Oded

+3

звучит как-то, что просили здесь много раз ... –

ответ

5

Это выглядит как метку времени UNIX, если это так, что это будет:

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

редактировать: Это на самом деле секунд вместо миллисекунд, судя по ней.

Дата 25 октября 2011.

+0

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

+0

Я думаю, что ваше базовое время должно быть 'new DateTime (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)', но я не уверен на 100%. – Rawling

+0

Относительно редактирования. Многие UNIX-системы используют 'Int32' (подписанное 32-битное целое число). Поэтому 'int timestamp = int.Parse (" 1319556419 ");' естественно. Если источник переключился на 64-разрядное UNIX-время, безопасно использовать код в том виде, в каком он стоит сейчас, в любом случае. См. [Проблема 2038 года] (http://en.wikipedia.org/wiki/Year_2038_problem). –

Смежные вопросы