Mat*_* H. 7 .net c# sql-server utc
我不知道为什么这么复杂!
我有一个传入long int UTC的插件.我需要将该数字转换DateTime
为查询我的数据库(SQL Server).
我不知道为什么,但我从基本的谷歌搜索中找不到可行的答案.
(为了额外的功劳,我需要DateTime
在一天结束时将我的返回信号转回UTC.)
不得不提出这样一个基本问题,这很令人尴尬!:)
Jon*_*eet 22
我的猜测是,从特定时代开始,它将是毫秒或秒 - 很可能是1970年1月1日,UTC午夜的Unix时代.
所以代码看起来像:
private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0,
DateTimeKind.Utc);
public static DateTime FromMillisecondsSinceUnixEpoch(long milliseconds)
{
return UnixEpoch.AddMilliseconds(milliseconds);
}
Run Code Online (Sandbox Code Playgroud)
几秒钟或者从不同的时代做出明显的变化:)
另一种方法是创建TimeSpan
自纪元以来的秒/毫秒,然后将其添加到纪元:
private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0,
DateTimeKind.Utc);
public static DateTime FromMillisecondsSinceUnixEpoch(long milliseconds)
{
return UnixEpoch + TimeSpan.FromMilliseconds(milliseconds);
}
Run Code Online (Sandbox Code Playgroud)
我不知道它们之间有任何显着差异 - 尽管AddMilliseconds
采用一个double
而不是一个事实long
表明,对于非常大的值,该TimeSpan
方法可能更可取.我怀疑它会有什么不同虽然:)
Tim*_* S. 10
你得到的是秒,毫秒还是什么?将其转换为刻度后,(一个.NET刻度为100纳秒)例如,通过long ticks = theDBDateNum*TimeSpan.TicksPerMillisecond;
尝试:
DateTime theDate = new DateTime(ticks, DateTimeKind.Utc);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12772 次 |
最近记录: |