Je convertis une valeur de ticks en une date comme celle-ci:
Convert(datetime, (MachineGroups.TimeAdded - 599266080000000000)/864000000000);
En utilisant cela, j'obtiens:
9/27/2009 10:50:27 PM
Mais je veux juste la date dans ce format:
October 1, 2009
La valeur de mon échantillon de ticks est
633896886277130000
Quelle est la meilleure façon de procéder?
Un objet DateTime peut être construit avec une valeur spécifique de ticks. Une fois que vous avez déterminé la valeur des ticks, vous pouvez effectuer les opérations suivantes:
DateTime myDate = new DateTime(numberOfTicks);
String test = myDate.ToString("MMMM dd, yyyy");
C'est beaucoup plus simple de le faire:
DateTime dt = new DateTime(633896886277130000);
Qui donne
dt.ToString() ==> "9/27/2009 10:50:27 PM"
Vous pouvez formater cela comme vous le souhaitez en utilisant dt.ToString(MyFormat)
. Reportez-vous à cette référence pour les chaînes de format. "MMMM dd, yyyy"
Fonctionne pour ce que vous avez spécifié dans la question.
Je ne sais pas où vous obtenez le 1er octobre.
private void button1_Click(object sender, EventArgs e)
{
long myTicks = 633896886277130000;
DateTime dtime = new DateTime(myTicks);
MessageBox.Show(dtime.ToString("MMMM d, yyyy"));
}
Donne
September 27, 2009
Est-ce ce dont vous avez besoin?
Je ne vois pas comment ce format est nécessairement facile à utiliser dans les requêtes SQL.
Jusqu'à présent, les réponses m'ont aidé à trouver la mienne. Je me méfie de l'heure UTC par rapport à l'heure locale; les tiques doivent toujours être 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);
}
}
Sortie:
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.