2010-12-08 3 views
12

Je cherche l'équivalent d'un Java System.currentTimeMilli(), en VB.NET.Comment obtenez-vous l'heure actuelle en millisecondes (long), dans VB.Net?

Quelle est la méthode à appeler? Je sais à propos de Datetime.Now, mais pas sur la conversion réelle à long millisecondes.


Plus de détails sur mes besoins spécifiques:

je dois gérer une expiration de connexion. Donc, très probablement lorsque je me connecte, je vais définir un "expiration_time_milli", égal à l'heure actuelle + la valeur du délai. Puis plus tard, si je veux vérifier si ma connexion est valide, je vérifierai que "expiration_time_milli" est toujours supérieur à l'heure actuelle.

+2

+1 pour plus de détails. Il est préférable d'expliquer votre problème et demander [la façon. Net] (http://stackoverflow.com/questions/4385853/how-do-you-get-the-current-time-in-milliseconds-long-in- vb-net/4386533 # 4386533), plutôt que de rechercher une traduction exacte d'une solution Java. Ce dernier produira un code plus long et semblera un peu étrange à un développeur .Net expérimenté. – MarkJ

+0

@MarkJ - oui, j'ai écrit ma question initiale rapidement (manque de temps à ce moment précis); seulement après avoir ajouté des détails, vu que la traduction exacte n'est en effet pas appropriée ou efficace. Les réponses données m'ont aidé à comprendre les objets autour de tout cela (par exemple, en découvrant le TimeLapse, avec les exemples donnés). – Gnoupi

Répondre

13

Pour obtenir la différence entre l'heure actuelle et l'origine de l'heure, utilisez la propriété TotalMilliseconds pour obtenir l'intervalle de temps en millisecondes, puis affinez-la en longueurs.

DirectCast((Datetime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds, Int64) 
+3

Si le code sera appelé fréquemment, je créerais probablement une variable statique ('Shared' in VB) pour contenir la valeur' New DateTime (1970, 1, 1) 'car elle est, bien, statique. Pas besoin de recréer l'objet pour chaque appel. –

+1

Ou CLng ((Datetime.Now - New DateTime (1970, 1, 1)) TotalMilliseconds) – BigPino

0
Dim myTime As DateTime = DateTime.Now 
    MessageBox.Show(myTime.Millisecond) 
5

Vous pouvez utiliser

(DateTime.Now-new DateTime(1970,1,1)).TotalMilliseconds 

BTW, juste deviner par votre question ce que vous pourriez être plus utile que vous pourriez être

DateTime.UtcNow 
3

Pour plus d'informations, mon cas personnel a été corrigé d'une autre manière, sans avoir exactement la même valeur qu'un System.currentTimeMilli():

Dim loginExpirationDate As Date 

'... 

'Checking code: 
If (loginExpirationDate < DateTime.Now) Then 
    reconnect() 
End If 

'update the expiration date 
loginExpirationDate = DateTime.Now.AddMilliseconds(timeoutMilli) 
Questions connexes