0
我有一個傳感器輸出世界時(自午夜1月1日(世界時),1904年以來的秒數)。轉換世界時間
在excel中,我可以使用下面的公式(UTtime/86400)+ 1462,然後以正常日期格式格式化單元格。
當我讀值到VB網應用程序,你知道我怎麼能這個值轉換爲日期時間變量
我有一個傳感器輸出世界時(自午夜1月1日(世界時),1904年以來的秒數)。轉換世界時間
在excel中,我可以使用下面的公式(UTtime/86400)+ 1462,然後以正常日期格式格式化單元格。
當我讀值到VB網應用程序,你知道我怎麼能這個值轉換爲日期時間變量
值,其返回,因爲被稱爲劃時代的任意日期蜱或秒數日期。最常見的是Unix Epoch,它是1970年1月1日UTC以來的秒數(在某些情況下爲毫秒)。
要轉換它,您基本上可以在文章中描述Excel:將幾秒鐘添加到代表基數1/1/1964 00:00:00.0 UTC
日期的DateTime
變量。您可以刪除.ToLocalTime()
以保持它爲UTC。
測試:
' RDG is a random data generator
' pick a random date from 1/1/1970 to today
Dim randomDate = DateTime.SpecifyKind(RDG.GetDate(DateType.UnixEpoch), DateTimeKind.Utc)
Console.WriteLine(" Selected Date: {0} (UTC)", randomDate.ToString())
' convert/emulate a sensor date
Dim sensorDate = DateToSensorValue(randomDate)
Dim realDate = SensorEpochToDate(sensorDate)
Console.WriteLine("Round trip value: {0} (Local)", realDate.ToString())
結果:
選擇的日期:1994年8月22日下午7點23分00秒(UTC)
往返值:1994年8月22日5 :23:00(本地)
它可能是一個很好的使它更容易使用的擴展方法,但作爲整數類型它會顯示太多var適合我的口味。
VBScript或VB.NET? Tag說了一件事,這個問題說另一個;參考excel意味着vba。自1904年以來的秒數不是世界時,它是某種古怪的時代或專有的連續時間。 – Plutonix
[轉換UTC/GMT時間到本地時間]的可能重複(https://stackoverflow.com/questions/179940/convert-utc-gmt-time-to-local-time) – TyCobb
傳感器文檔將其稱爲通用時間。它的VB網絡,我糾正了問題。 TYCobb - 我讀過這個問題並沒有回答我的問題(我不認爲) – Chris