【C#】DateTime使用汇总

一、DateTime类型转换

(1)DateTime与long相互转换

日期转换为long:
DateTime dtnow = DateTime.Now;
long time = dtnow.Ticks;

long转换为日期:
long time = 636617664000000000;
DateTime dt = new DateTime(time);

 

2、DateTime与byte[]相互转换

只要把DateTime转换为long再转换为byte[]

long  i = 123;
byte [] tmpBuff = BitConverter.GetBytes(i);     // 将 int 转换成字节数组
i = BitConverter.ToInt64(tmpBuff, 0);           // 从字节数组转换成 int

 

二、DateTime转ms时间

        /// <summary>
        /// 获取时间戳
        /// </summary>
        /// <param name="dt">时间</param>
        /// <param name="millisecond">是否毫秒级,true毫秒级(默认值)</param>
        /// <returns></returns>
        public static long ToTimestamp(this DateTime dt, bool millisecond = true)
        {
            /*
             * ticks的单位是100纳秒,1 Tick=100纳秒,所以需要除以10000000(秒),10000(毫秒)
             *  s(秒),ms(毫秒),μs(微秒),ns(纳秒),1s=1000ms,1 ms=1000μs,1μs=1000ns
             */
            int divisor = millisecond ? 10000 : 10000000;
            long dt_ticks = dt.ToUniversalTime().Ticks;
            return (dt_ticks - Const.TiksUtc1970) / divisor;
        }

时间戳转换参考:https://www.cnblogs.com/bugzero/p/12077436.html

 

posted @ 2021-07-10 10:40  不溯流光  阅读(853)  评论(0编辑  收藏  举报