2010-12-08 3 views
12

Я ищу эквивалент Java System.currentTimeMilli(), в VB.NET.Как вы получаете текущее время в миллисекундах (длинные), в VB.Net?

Каков метод вызова? Я знаю о Datetime.Now, но не о фактическом преобразовании в длинные миллисекунды.


Более подробно о моей конкретной потребности:

мне нужно управлять истечением входа. Поэтому, скорее всего, когда я войду в систему, я установлю «expiration_time_milli», равный текущему времени + значение таймаута. Затем, если я хочу проверить, действительно ли мой логин, я проверю, что «expiration_time_milli» по-прежнему превосходит текущее время.

+2

+1 для более подробной информации. Лучше объяснить вашу проблему и попросить [путь .Net] (http://stackoverflow.com/questions/4385853/how-do-you-get-the-current-time-in-milliseconds-long-in- vb-net/4386533 # 4386533), а не искать точный перевод Java-решения. Последний будет генерировать код, который длиннее и будет немного странным для опытного разработчика .Net. – MarkJ 2010-12-08 13:01:05

+0

@MarkJ - да, я быстро написал свой первоначальный вопрос (нехватка времени в этот конкретный момент); только после того, как я добавил детали, видя, что точный перевод действительно не подходит или эффективен. Эти ответы помогли мне понять объекты вокруг всего этого (например, обнаружив TimeLapse с приведенными примерами). – Gnoupi 2010-12-08 13:26:05

ответ

13

Получите разницу между текущим временем и временем, используйте свойство TotalMilliseconds, чтобы получить промежуток времени в миллисекундах, и произведите его до конца.

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

Если код будет вызываться часто, я бы, вероятно, создал статическую (`Shared` в VB) переменную, чтобы сохранить значение` New DateTime (1970, 1, 1) `, так как это, ну, статично. Нет необходимости воссоздавать объект для каждого вызова. – 2010-12-08 09:40:57

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

Вы можете использовать

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

Btw, просто угадать ваш вопрос, что вы могли бы быть более полезным для вас может быть

DateTime.UtcNow 
3

Для получения дополнительной информации, мое личное дело был исправлен другим способом, не получая то же значение, что и 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) 
Смежные вопросы