基本上我想在.NET中执行以下操作,但我不知道如何使用。
var d = new Date().getTime() + " milliseconds since 1970/01/01"
答案 0 :(得分:9)
我不确定您是否可以在.NET中获得UNIX日期,但您将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。 Jon Skeet在我们需要他的时候知道他的时间:P
答案 1 :(得分:5)
你会做这样的事情......
var ts = DateTime.UtcNow - new DateTime(1970,1,1);
var result = String.Format("{0} milliseconds since 1970/01/01", ts.TotalMilliseconds);
答案 2 :(得分:2)
我一会儿为自己写了一个扩展方法。
它的使用方式如下:
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;
}
}
答案 3 :(得分:2)
减法是这样做的方法,但到目前为止我看到的所有响应都没有正确调整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);
答案 4 :(得分:1)
您可以通过DateTime
和TimeSpan
结构通过DateTime.Subtract
到达那里,例如:
TimeSpan ts = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1));
ts.TotalMilliseconds; // ...since The Epoch
答案 5 :(得分:0)
怎么样
var s = string.format("{0} milliseconds since 1970/01/01",
(DateTime.Now - DateTime.Parse("1970/01/01")).TotalMilliseconds);
答案 6 :(得分:0)
我正在鬼混并看到这个例子,但最终将其修改为:
var st = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).ToFileTimeUtc();
var t = (DateTime.UtcNow.ToFileTimeUtc());
Debug.WriteLine(t - st);
将给出一个数字,如 16202########
答案 7 :(得分:-1)
DateTime dt = new DateTime();
dt = DateTime.Now;
TimeSpan dtNow = new TimeSpan();
dtNow = dt.Subtract(new DateTime(1970, 1, 1));
Console.WriteLine(dtNow.TotalMilliseconds);
与其他人相比有点啰嗦,但它确实有效。