c# - 将 Unix 纪元时间戳转换为 DateTime 并返回
问题描述
我将日期和时间 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();
推荐阅读
- redis - Is Redis security weak but does not matter?
- javascript - 如何进行 nativescript paytm 集成
- c# - C# 位图中的缩放性能
- c - C 语言中的多个数据库配置
- c++ - Compilation error with readfile function in C++
- c# - 从类中获取字符串到 web api
- r - adding two column of a data where col1 contains date and col2 contains days
- java - java - 如何在Java中使用枚举作为JSON对象中的键?
- node.js - socket.emit 在 socket.on 下不起作用
- php - 我们可以在 Laravel 控制器中有两个或更多类吗