C#中DateTime和秒之间的互转

本来很少用到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,则结果完全不对,不过它只用作相对时间应该是没有问题的,但不能用作绝对时间

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值