В основном я хочу сделать ниже в.NET, но я понятия не имею как к.
var d = new Date().getTime() + " milliseconds since 1970/01/01"
Вы бы сделали что-то вроде этого ...
var ts = DateTime.UtcNow - new DateTime(1970,1,1);
var result = String.Format("{0} milliseconds since 1970/01/01", ts.TotalMilliseconds);
Я не совсем уверен, что вы можете получить дату 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
DateTime dt = new DateTime();
dt = DateTime.Now;
TimeSpan dtNow = new TimeSpan();
dtNow = dt.Subtract(new DateTime(1970, 1, 1));
Console.WriteLine(dtNow.TotalMilliseconds);
Немного многословен по сравнению с другими, но он работает.
Вы можете попасть туда через структуры DateTime
и TimeSpan
через DateTime.Subtract
, что-то вроде:
TimeSpan ts = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1));
ts.TotalMilliseconds; // ...since The Epoch
Как насчет
var s = string.format("{0} milliseconds since 1970/01/01",
(DateTime.Now - DateTime.Parse("1970/01/01")).TotalMilliseconds);
Некоторое время назад я написал для себя метод расширения.
Он используется так:
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;
}
}
Вычитание - это способ сделать это, но все ответы, которые я видел до сих пор, неправильно корректируются для 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);