本来很少用到C#,但现在有些事情在用C#,所以不也不得不面临其中的一些问题
这几天用到了DateTime和秒之间的实际转换,前几天也有用到,但当时只是一个相对时间,不需要关心具体的值,所以当时写了代码也就没有多追究它了,今天必需面对正确的这个转换,只好翻看了好几个网址,大多数都写的似乎看不懂
本篇文章参考:https://zhidao.baidu.com/question/1830714139765237940.html
以下为各项的实现:
// 时间分量转换成实际的秒数
public static ulong GetDateTime(int year, int month, int day, int hour, int minute, int second)
{
ulong dateVal = 0;
try
{
DateTime dt = new DateTime(year, month, day, hour, minute, second);
DateTime dt0 = new DateTime(1970, 1, 1);
TimeSpan ts = new TimeSpan(dt.Ticks - dt0.Ticks);
dateVal = (ulong)ts.TotalSeconds;
}
catch (Exception e)
{
}
return dateVal;
}
// 秒数转换成日期
public static DateTime dtVal2Bcd(ulong dtVal)
{
DateTime dt = new DateTime(1970, 1, 1);
dt = dt.AddSeconds(dtVal);
return dt;
}
如果是直接用DateTime.Ticks,则结果完全不对,不过它只用作相对时间应该是没有问题的,但不能用作绝对时间