2013-06-26 6 views
9

Я получаю временную метку из XML document.Now, я хочу, чтобы преобразовать Timestamp в формат Дата (13-May-13)C# - Как преобразовать временную метку в дату?

XmlNodeList cNodes = xncomment.SelectNodes("comment"); 
foreach (XmlNode node in cNodes) 
{ 
    //I'm getting this "1372061224000" in comment-date 
    string comment_date = node["creation-timestamp"].InnerText; 
} 

Любые идеи? Заранее спасибо.

+1

- это то, что значение метки времени сервера sql? Если это так, вы не должны использовать его как datetime ... –

+0

Это то, что вы искали: http://stackoverflow.com/q/11914243/1341477 –

+0

Возможное дублирование [This] (http: // stackoverflow. com/questions/11914243/convert-timestampdatetime-ticks-from-database-to-datetime-value-before-display) –

ответ

24

Учитывая, что это похоже на временную метку Java, просто используйте ниже:

var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(1372061224000/1000d)).ToLocalTime(); 
Console.WriteLine(dt); // Prints: 6/24/2013 10:07:04 AM 
+0

Почему «ToLocalTime»? –

+0

Это не обычная метка времени. пожалуйста, позаботьтесь –

2

Может заменить это:

foreach (XmlNode node in cNodes) 
{ 
    //I'm getting this "1372061224000" in comment-date 
    string comment_date = node["creation-timestamp"].InnerText; 
} 

по:

foreach (XmlNode node in cNodes) 
{ 
    Datetime comment_date = new DateTime(Convert.ToInt32(node["creation-timestamp"]); 
} 
0

Спасибо всем.

Наконец я получил выходной сигнал

foreach (XmlNode node in cNodes) 
{ 
    comment_timestamp = node["creation-timestamp"].InnerText; 
    DateTime comment_date1 = new DateTime(Convert.ToInt64(comment_timestamp)); 
    comment_date = Convert.ToDateTime(comment_date1).ToString("dd-MMM-yy"); 
} 

Выход:

01-MAY-13 
3

Наконец я нашел, как конвертировать штамп времени в Дата & Дата к отметками времени. Я обнаружил, что некоторые люди в проектных людях держат дату в качестве отметки времени, чтобы быстро получить разницу. поэтому в этом случае они используют, чтобы сохранить столбец таблицы как Int или отметку времени. теперь проблема в том, что в приложении при показе данных вам необходимо преобразовать его в переменную даты. Так что мы можем использовать следующий код для преобразования Отметка времени в Дата

int ts = 1451174400; 
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(ts).ToLocalTime(); 
string formattedDate = dt.ToString("dd-MM-yyyy"); 

Теперь вы можете получить любой формат даты этой переменной.

Во втором случае, если вы хотите, чтобы преобразовать Дата в Отметка времени затем проверьте следующий код.

int ts = (dt.Ticks - 621356166000000000)/10000000; 

Где дт этого время даты переменной &, содержащее значение даты.

+0

этот ответ префект для обычной отметки времени –