自特定日期起C#秒

在C#3.0中,如何获得自2010年1月1日以来的秒数?

是这样的:

TimeSpan test = DateTime.Now - new DateTime(2010, 01, 01); MessageBox.Show(test.TotalSeconds.ToString()); 

对于一个class轮乐趣:

  MessageBox.Show((DateTime.Now - new DateTime(2010, 01, 01)) .TotalSeconds.ToString()); 

您可以减去2个DateTime实例并获取TimeSpan:

 DateTime date = new DateTime(2010,1,1); TimeSpan diff = DateTime.Now - date; double seconds = diff.TotalSeconds; 

只是为了避免时区问题

  TimeSpan t = (DateTime.UtcNow - new DateTime(2010, 1, 1)); int timestamp = (int) t.TotalSeconds; Console.WriteLine (timestamp); 

这真的是你在2010年1月1日使用的问题,以及你是否想要考虑夏令时。

 //I'm currently in Central Daylight Time (Houston, Texas) DateTime jan1 = new DateTime(2010, 1, 1); //days since Jan1 + time since midnight TimeSpan differenceWithDaylightSavings = DateTime.Now - jan1; //one hour less than above (we "skipped" those 60 minutes about a month ago) TimeSpan differenceWithoutDaylightSavings = (DateTime.UtcNow - jan1.ToUniversalTime()); //difference for those using UTC and 2010-Jan-01 12:00:00 AM UTC as their starting point // (today it's 5 hours longer than differenceWithDaylightSavings) TimeSpan utcDifference = (DateTime.UtcNow - new DateTime(2010, 1, 1)); 
与夏令时的差异:105.15:44:09.7003571
没有夏令时的差异:105.14:44:09.7003571
 UTC差异:105.20:44:09.7003571

要获取秒数,请使用TimeSpan对象的TotalSeconds属性。

 protected void Page_Load(object sender, EventArgs e) { SecondsSinceNow(new DateTime(2010, 1, 1, 0, 0, 0)); } private double SecondsSinceNow(DateTime compareDate) { System.TimeSpan timeDifference = DateTime.Now.Subtract(compareDate); return timeDifference.TotalSeconds; } 
 DateTime t1 = DateTime.Now; DateTime p = new DateTime(2010, 1, 1); TimeSpan d = t1 - p; long s = (long)d.TotalSeconds; MessageBox.Show(s.ToString());