How can I convert ticks to a date format?

前端 未结 4 498
心在旅途
心在旅途 2020-11-27 20:06

I am converting a ticks value to a date like this:

Convert(datetime, (MachineGroups.TimeAdded - 599266080000000000)/864000000000);

Using th

相关标签:
4条回答
  • 2020-11-27 20:23
        private void button1_Click(object sender, EventArgs e)
        {
            long myTicks = 633896886277130000;
            DateTime dtime = new DateTime(myTicks);
            MessageBox.Show(dtime.ToString("MMMM d, yyyy"));
        }
    

    Gives

    September 27, 2009
    

    Is that what you need?

    I don't see how that format is necessarily easy to work with in SQL queries, though.

    0 讨论(0)
  • 2020-11-27 20:25

    Answers so far helped me come up with mine. I'm wary of UTC vs local time; ticks should always be UTC IMO.

    public class Time
    {
        public static void Timestamps()
        {
            OutputTimestamp();
            Thread.Sleep(1000);
            OutputTimestamp();
        }
    
        private static void OutputTimestamp()
        {
            var timestamp = DateTime.UtcNow.Ticks;
            var localTicks = DateTime.Now.Ticks;
            var localTime = new DateTime(timestamp, DateTimeKind.Utc).ToLocalTime();
            Console.Out.WriteLine("Timestamp = {0}.  Local ticks = {1}.  Local time = {2}.", timestamp, localTicks, localTime);
        }
    }
    

    Output:

    Timestamp = 636988286338754530.  Local ticks = 636988034338754530.  Local time = 2019-07-15 4:03:53 PM.
    Timestamp = 636988286348878736.  Local ticks = 636988034348878736.  Local time = 2019-07-15 4:03:54 PM.
    
    0 讨论(0)
  • 2020-11-27 20:28

    It's much simpler to do this:

    DateTime dt = new DateTime(633896886277130000);
    

    Which gives

    dt.ToString() ==> "9/27/2009 10:50:27 PM"
    

    You can format this any way you want by using dt.ToString(MyFormat). Refer to this reference for format strings. "MMMM dd, yyyy" works for what you specified in the question.

    Not sure where you get October 1.

    0 讨论(0)
  • 2020-11-27 20:38

    A DateTime object can be constructed with a specific value of ticks. Once you have determined the ticks value, you can do the following:

    DateTime myDate = new DateTime(numberOfTicks);
    String test = myDate.ToString("MMMM dd, yyyy");
    
    0 讨论(0)
提交回复
热议问题