[英]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.