zoukankan      html  css  js  c++  java
  • TimeSpan转DateTime的骚操作

    啊哈,果然有需求的一周  日子过得很快啊、

    不知不觉就又到了今天,上周忙的要是,本来打算周五写一写,结果写到一半后就又折腾其他的了

    老规矩记录下上周当中用过的一些技术,和心得(主要是写给自己)

    在这周当中,我要做一个秒杀的功能,在这个秒杀里面有一个秒杀的倒计时,

    目标为需要动态的显示 当前时间和秒杀活动结束时间的时间差,

    也就是说在页面中要有一个时间栏能够显示 还有多久我就买不了这玩意儿了。

    需求好像很简单,先这样,在那样,最后在这样不就完了吗.....

    ===================================================

    其实应该是,先计算出当前时间和结束时间的时间差,然后把时间差拿来放入页面中。

    本来这事儿在客户端就能干了,

    但是,这里要说个但是。。。

    JS中的时间换算实在是太不友好,所以。我就把这事儿搬到了后台,自己个儿写了一方法。

    这里吐槽就先过。。。 重点说怎么处理的这事儿

    直接上Code

    1 DateTime endTime = Convert.ToDateTime(time);
    2 TimeSpan leftTime = endTime - DateTime.Now;
    3 
    4 DateTime getPureLeftTime = new DateTime(1970, 1, 1).Add(leftTime);
    5 
    6 string timer = getPureLeftTime.ToString("yyyy/MM/dd-HH:mm:ss");
    7 timer = timer.Substring(timer.LastIndexOf('-')+1);

    首先我们都知道,TimeSpan是一个区间值,它的时间是没办法直接拿来用的。所以如果直接强制转换它是不太现实的(可能是我不知道怎么转)

    于是经过广大群友和我的聪明才智,这里是重点,敲黑板。

    我给了一个初始值,

    DateTime getPureLeftTime = new DateTime(1970, 1, 1).Add(leftTime);

    也就是这里,把剩余时间加到了新的时间里面,因为我们都知道,这样new出来的DateTime是一个新的初始值,所有的时间为0点

    那么最后我把前面的时间截取掉,直接取时间文本不久好了嘛(美滋滋)

    综上,我就获取到了,也就是(强转)TimeSpan的时间。

  • 相关阅读:
    Java数据持久层
    一张图解决ThreadLocal
    类加载器及其加载原理
    手写LRU缓存淘汰算法
    使用归并排序思想解决逆序对数量问题
    Same Origin Policy 浏览器同源策略详解
    如何估算线程池的线程数?
    分布式锁为什么要选择Zookeeper而不是Redis?
    SpringBoot的SpringMVC使用FastJson依赖时LocalDateTime全局配置序列化格式
    数据库中的枚举值如何存储
  • 原文地址:https://www.cnblogs.com/SevenWang/p/13984444.html
Copyright © 2011-2022 走看看