.NET中的新Date()。getTime()

时间:2010-04-21 13:09:16

标签: .net datetime

基本上我想在.NET中执行以下操作,但我不知道如何使用。

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

8 个答案:

答案 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)

您可以通过DateTimeTimeSpan结构通过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);

与其他人相比有点啰嗦,但它确实有效。