новый Date (). getTime () в .NET - PullRequest
7 голосов
/ 21 апреля 2010

В основном я хочу сделать ниже в .NET, но я не знаю, как это сделать.

var d = new Date().getTime() + " milliseconds since 1970/01/01"

Ответы [ 7 ]

9 голосов
/ 21 апреля 2010

Я не совсем уверен, что вы можете получить дату UNIX в .NET, но у вас есть DateTime.Now в качестве эквивалента нового Date () (или нового DateTime ())

Как вы заметили в комментарии, можно получить объект TimeSpan, добавив что-то в строки ...

(Первый ответ)

DateTime.Now.Subtract(new DateTime(1970,1,1)).TotalMilliseconds

Добавление окончательного результата ради человечества ...

var d = DateTime.Now.Subtract(new DateTime(1970,1,1).ToUniversalTime()).TotalMilliseconds + " milliseconds since 1970/01/01";

P.S. Где Джон Скит с его знанием времени, когда он нам нужен: P

5 голосов
/ 21 апреля 2010

Ты бы сделал что-то подобное ...

var ts = DateTime.UtcNow - new DateTime(1970,1,1);
var result = String.Format("{0} milliseconds since 1970/01/01", ts.TotalMilliseconds);
2 голосов
/ 21 апреля 2010

Вычитание - способ сделать это, но все ответы, которые я видел до сих пор, не корректируются с учетом UTC.

Вы хотите что-то вроде:

var ts = DateTime.UtcNow - new DateTime(1970,1,1,0,0,0,DateTimeKind.Utc); 
var result = String.Format("{0} milliseconds since 1970/01/01", ts.TotalMilliseconds);
2 голосов
/ 21 апреля 2010

Некоторое время назад я написал для себя метод расширения.

Используется так:

 double ticks = DateTime.UtcNow.UnixTicks();

Реализация:

 public static class ExtensionMethods
 {
  // returns the number of milliseconds since Jan 1, 1970 
                // (useful for converting C# dates to JS dates)
  public static double UnixTicks(this DateTime dt)
  {
   DateTime d1 = new DateTime(1970, 1, 1);
   DateTime d2 = dt.ToUniversalTime();
   TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);

   return ts.TotalMilliseconds;
  }
 }
1 голос
/ 21 апреля 2010

Вы можете попасть туда через DateTime и TimeSpan через DateTime.Subtract, что-то вроде:

TimeSpan ts = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1));
ts.TotalMilliseconds; // ...since The Epoch
0 голосов
/ 21 апреля 2010

Как насчет

var s = string.format("{0}  milliseconds since 1970/01/01",
           (DateTime.Now - DateTime.Parse("1970/01/01")).TotalMilliseconds);
0 голосов
/ 21 апреля 2010
DateTime dt = new DateTime();
dt = DateTime.Now;
TimeSpan dtNow = new TimeSpan();
dtNow = dt.Subtract(new DateTime(1970, 1, 1));
Console.WriteLine(dtNow.TotalMilliseconds);

Немного скучно по сравнению с другими, но это работает.

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