ASP.net c # Parse int как datetime - PullRequest
       16

ASP.net c # Parse int как datetime

3 голосов
/ 06 октября 2010

Учитывая время:

1286294501433

Что представляет собой миллисекунды, прошедшие с 1970 года, как мы можем преобразовать это в тип данных DateTime?EG:

transactionTime = "1286294501433";
UInt64 intTransTime = UInt64.Parse(transactionTime);
DateTime transactionActualDate = DateTime.Parse(intTransTime.ToString());

Броски:

Строка не была распознана как допустимый DateTime.

Обратите внимание, что все времена, переданные в эту функцию, гарантированыбыть после 1970.

Ответы [ 3 ]

14 голосов
/ 06 октября 2010
var dt = new DateTime(1970, 1, 1).AddMilliseconds(1286294501433);

Возможно, вам также потребуется указать DateTimeKind в зависимости от ваших точных требований:

var dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
             .AddMilliseconds(1286294501433);
1 голос
/ 08 мая 2012

И чтобы еще больше упростить его, а также учесть местный часовой пояс:

Просто создайте расширение целого числа -

  public static class currency_helpers {
    public static DateTime UNIXTimeToDateTime(this int unix_time) {
      return new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(unix_time).ToLocalTime();
    }
  }

А потом назовите это так:

var unix_time = 1336489253;    
var date_time = unix_time.UNIXTimeToDateTime();

Значение date_time равно:

5/8/2012 10:00:53 AM

(через: http://www.codeproject.com/Articles/10081/UNIX-timestamp-to-System-DateTime?msg=2494329#xx2494329xx)

0 голосов
/ 06 октября 2010

Предполагая, что это время Unix, это количество секунд, поэтому

int unixtimestamp=int.Parse(str);
new DateTime(1970,1,1,0,0,0).AddSeconds(unixtimestamp);

как этот парень сборщика сказал .

вики говорят

Время Unix, или время POSIX, представляет собой систему для описания моментов времени, определяемых как количество секунд, прошедших с полуночного универсального координированного времени (UTC) 1 января 1970 года, не считая високосных секунд.Я

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...