C# seconds since specific date

前端 未结 6 1669
醉话见心
醉话见心 2020-12-11 15:48

In C# 3.0, how do I get the seconds since 1/1/2010?

相关标签:
6条回答
  • 2020-12-11 16:28

    Just to avoid timezone issues

     TimeSpan t = (DateTime.UtcNow - new DateTime(2010, 1, 1));
    
     int timestamp  = (int) t.TotalSeconds;
    
     Console.WriteLine (timestamp);
    
    0 讨论(0)
  • 2020-12-11 16:28

    It's really a matter of whose 2010-Jan-01 you're using and whether or not you wish to account for daylight savings.

    //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));
    
    Difference with Daylight Savings:     105.15:44:09.7003571
    Difference without Daylight Savings:  105.14:44:09.7003571
    UTC Difference:                       105.20:44:09.7003571
    

    To get the seconds, use the TotalSeconds property off the TimeSpan object.

    0 讨论(0)
  • 2020-12-11 16:31

    Goes like this:

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

    For one liner fun:

     MessageBox.Show((DateTime.Now - new DateTime(2010, 01, 01))
         .TotalSeconds.ToString());
    
    0 讨论(0)
  • 2020-12-11 16:32

    You can substract 2 DateTime instances and get a TimeSpan:

    DateTime date = new DateTime(2010,1,1);
    TimeSpan diff = DateTime.Now - date;
    double seconds = diff.TotalSeconds;
    
    0 讨论(0)
  • 2020-12-11 16:33
    DateTime t1 = DateTime.Now;
    DateTime p = new DateTime(2010, 1, 1);
    
    TimeSpan d = t1 - p;
    
    long s = (long)d.TotalSeconds;
    MessageBox.Show(s.ToString());
    
    0 讨论(0)
  • 2020-12-11 16:37
    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;
    }
    
    0 讨论(0)
提交回复
热议问题