簡體   English   中英

將Unix Epoch時間戳轉換為DateTime並返回

[英]Convert Unix Epoch Timestamp to DateTime and back

我將日期和時間19/03/2019 14:23:00轉換為Unix Epoch TimeStamp,然后再轉換回DateTime對象。 轉換成功除了一年,導致0050而不是2019年。我不知道我在轉換過程中做錯了什么,回到DateTime。 代碼如下:

DateTime targetDateTime = new DateTime(2019, 03, 19, 14, 23, 00, DateTimeKind.Local);
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);    
long unixDateTime = (long)(targetDateTime.ToUniversalTime() - epoch).TotalSeconds;
TimeSpan resultingTimeSpan = TimeSpan.FromSeconds(unixDateTime);
DateTime localDateTime = new 
DateTime(resultingTimeSpan.Ticks).ToLocalTime();

localDateTime.Year結果:0050請幫忙。

如果您的目的是從日期時間值獲取刻度,然后將其轉換回原始日期時間值,則可以使用以下代碼

DateTime targetDateTime = new DateTime(2019, 03, 19, 14, 23, 00, DateTimeKind.Local);

var totalTicks = targetDateTime.ToUniversalTime().Ticks;

DateTime localDateTime = new DateTime(totalTicks, DateTimeKind.Utc).ToLocalTime();

如果您仍想獲得有關紀元時間的刻度值,那么此代碼可以提供幫助

DateTime targetDateTime = new DateTime(2019, 03, 19, 14, 23, 00, DateTimeKind.Local);
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
long unixDateTime = (targetDateTime.ToUniversalTime() - epoch).Ticks;

 //Add the ticks back to the epoch
 var utcTime = epoch.AddTicks(unixDateTime);
 DateTime localDateTime = utcTime.ToLocalTime();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM