2011-01-22 3 views
0

Привет У меня проблемы есть дата разбора в следующем формате:разобрать «странный» формат даты

1295716379 

Я не какой формат даты является его.

Читабельно значение этой строки является:

22. 1. 2011, 18.12 

Кроме того, я не знаю, что этот формат является некоторым форматом ковбой кодировщика или это какой-то «стандарт».

И если это возможно, синтаксический анализ строки сверху на человеческий читаемый формат, для справки на C#, Java, C++.

Спасибо

ответ

3

Похоже unix timestamp.

Вы можете разобрать их, как так:

Дополнительные ссылки: Epoch Converter.com.

+1

+1 Согласен. И если вы хотите разобрать это на C#, см. Здесь: http://stackoverflow.com/questions/1674215/parsing-unix-time-in-c –

+0

Спасибо, ребята, я был в замешательстве с этим форматом. –

0

Это временная метка эпохи UNIX.

Пример в C#, чтобы преобразовать его в DateTime:

DateTime ToDateTime(int seconds) 
{ 
    DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); 
    return epoch.ToLocalTime().AddSeconds(seconds); 
} 

Это превратит его в местное время.

0

Проверено, это временная метка unix.

Время Sat Jan 22 17:12:59 2011 в UTC.

Похоже, что у вас есть местное значение времени, а ваш часовой пояс - UTC + 1.

В C/C++:

#define _USE_32BIT_TIME_T 
#include <stdio.h> 
#include <time.h> 
#include <stdlib.h> 

int main() 
{ 
    int i = atoi("1295716379"); 
    time_t t = (time_t)i; 
    puts(ctime(&t)); 
    tm t_tm = *gmtime(&t); 
    puts(asctime(&t_tm)); 
    return 0; 
} 

Выход:

Sun Jan 23 02:12:59 2011 

Sat Jan 22 17:12:59 2011 

Обратите внимание, что gmtime значение времени возврата UTC, localtime вернуть локальное значение времени.

PS: Я живу в UTC + 9 часовой пояс