如何将刻度线转换为日期格式?


70

我将刻度值转换为这样的日期:

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

使用这个我得到:

9/27/2009 10:50:27 PM

但是我只想要这种格式的日期:

October 1, 2009

我的样本报价值是

633896886277130000

做这个的最好方式是什么?


在我看来,关于如何格式化DateTime.ToString()输出的问题真是一个非常现实的问题。
埃里克·

如果他从昨天开始阅读了我对他的问题的回答,我已经提供了此代码...
womp

1
我对问题进行了大量编辑,以使其听起来更加合法。原始文件需要改进。
JosephStyons

他确实提供了代码尝试,所以至少他表现出了努力。昨天不知道这个问题。不过,我到了可能无法阅读“未知(google)”问题的地步。他们确实不会花很多时间来很好地解决问题。
埃里克·

Answers:


188

可以使用特定的tick值构造DateTime对象。确定报价价格后,可以执行以下操作:

DateTime myDate = new DateTime(numberOfTicks);
String test = myDate.ToString("MMMM dd, yyyy");

57

这样做要简单得多:

DateTime dt = new DateTime(633896886277130000);

这使

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

您可以使用随意设置格式dt.ToString(MyFormat)。有关格式字符串,请参考此参考"MMMM dd, yyyy"适用于您在问题中指定的内容。

不确定10月1日到哪里。


10月1日只是一个格式示例。我需要convert语句,以便可以在SQL select语句中使用它
user175084

7
    private void button1_Click(object sender, EventArgs e)
    {
        long myTicks = 633896886277130000;
        DateTime dtime = new DateTime(myTicks);
        MessageBox.Show(dtime.ToString("MMMM d, yyyy"));
    }

September 27, 2009

那是你需要的吗?

不过,我看不出该格式在SQL查询中如何易于使用。


1

到目前为止的答案帮助我想到了我的。我对UTC与当地时间保持警惕;刻度线应始终为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);
    }
}

输出:

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.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.