yyyy - datetime.parse c#




Comment fonctionne exactement DateTime.Now.Ticks? (4)

Dans mon application, je génère des fichiers à des occasions aléatoires. Pour assurer un nom unique, j'ai essayé d'utiliser les nanosecondes depuis le 1.1.1970:

long time = DateTime.Now.Ticks;
String fileName = Convert.ToString(time);
Console.WriteLine(fileName);

Maintenant, j'ai observé quelque chose de bizarre. Pourquoi la sortie est-elle comme ça? Je veux dire, pourquoi les 4 derniers chiffres sont-ils toujours les mêmes? Je peux utiliser cela comme un nom de fichier, ce n'est pas le problème, mais je m'interroge à ce sujet.

634292263478068039
634292263512888039
634292263541368039
634292263603448039
634292263680078039

Ce n’est pas vraiment une réponse à votre question telle que posée, mais j’ai pensé vous renseigner sur votre objectif général.

Il existe déjà une méthode pour générer des noms de fichiers aléatoires dans .NET.

Voir System.Path.GetTempFileName et GetRandomFileName .

Il est également courant d'utiliser un GUID pour nommer des fichiers aléatoires.



Vous pouvez obtenir les millisecondes depuis le 1/1/1970 en utilisant un tel code:

private static DateTime JanFirst1970 = new DateTime(1970, 1, 1);
public static long getTime()
{
    return (long)((DateTime.Now.ToUniversalTime() - JanFirst1970).TotalMilliseconds + 0.5);
}

convertir l'heure actuelle en nom de fichier pour enregistrer les fichiers que vous pouvez utiliser

DateTime.Now.ToFileTime()

cela devrait résoudre votre objectif







datetime