Ich konvertiere einen Ticks-Wert in ein Datum wie das folgende:
Convert(datetime, (MachineGroups.TimeAdded - 599266080000000000)/864000000000);
Damit bekomme ich:
9/27/2009 10:50:27 PM
Aber ich möchte nur das Datum in diesem Format:
October 1, 2009
Mein Beispiel-Tick-Wert ist
633896886277130000
Was ist der beste Weg, dies zu tun?
c#
asp.net
sql-server
sql-server-2005
user175084
quelle
quelle
Antworten:
Ein DateTime-Objekt kann mit einem bestimmten Wert von Ticks erstellt werden. Nachdem Sie den Tick-Wert ermittelt haben, können Sie Folgendes tun:
DateTime myDate = new DateTime(numberOfTicks); String test = myDate.ToString("MMMM dd, yyyy");
quelle
Dies ist viel einfacher:
DateTime dt = new DateTime(633896886277130000);
Welches gibt
dt.ToString() ==> "9/27/2009 10:50:27 PM"
Sie können dies beliebig formatieren, indem Sie verwenden
dt.ToString(MyFormat)
. In dieser Referenz finden Sie Formatzeichenfolgen."MMMM dd, yyyy"
funktioniert für das, was Sie in der Frage angegeben haben.Ich bin mir nicht sicher, woher du den 1. Oktober bekommst.
quelle
private void button1_Click(object sender, EventArgs e) { long myTicks = 633896886277130000; DateTime dtime = new DateTime(myTicks); MessageBox.Show(dtime.ToString("MMMM d, yyyy")); }
Gibt
September 27, 2009
Benötigen Sie das?
Ich sehe jedoch nicht, wie einfach es ist, mit diesem Format in SQL-Abfragen zu arbeiten.
quelle
Die bisherigen Antworten haben mir geholfen, meine zu finden. Ich bin vorsichtig mit UTC gegen Ortszeit; Ticks sollten immer UTC IMO sein.
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); } }
Ausgabe:
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.
quelle