новая Дата () .getTime () в.NET

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

var d = new Date().getTime() + " milliseconds since 1970/01/01"
7
задан 21 April 2010 в 13:09
поделиться

7 ответов

Вы бы сделали что-то вроде этого ...

var ts = DateTime.UtcNow - new DateTime(1970,1,1);
var result = String.Format("{0} milliseconds since 1970/01/01", ts.TotalMilliseconds);
5
ответ дан 6 December 2019 в 10:48
поделиться

Я не совсем уверен, что вы можете получить дату UNIX в .NET, но у вас есть DateTime.Now как эквивалент new Date () (или new 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";

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

9
ответ дан 6 December 2019 в 10:48
поделиться
DateTime dt = new DateTime();
dt = DateTime.Now;
TimeSpan dtNow = new TimeSpan();
dtNow = dt.Subtract(new DateTime(1970, 1, 1));
Console.WriteLine(dtNow.TotalMilliseconds);

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

-1
ответ дан 6 December 2019 в 10:48
поделиться

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

TimeSpan ts = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1));
ts.TotalMilliseconds; // ...since The Epoch
1
ответ дан 6 December 2019 в 10:48
поделиться

Как насчет

var s = string.format("{0}  milliseconds since 1970/01/01",
           (DateTime.Now - DateTime.Parse("1970/01/01")).TotalMilliseconds);
0
ответ дан 6 December 2019 в 10:48
поделиться

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

Он используется так:

 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;
  }
 }
2
ответ дан 6 December 2019 в 10:48
поделиться

Вычитание - это способ сделать это, но все ответы, которые я видел до сих пор, неправильно корректируются для 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
ответ дан 6 December 2019 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: