C# 时间戳与DateTime互转,使用 DateTimeOffset

摘要:
*此属性的值表示自0001年1月1日午夜12:00:00以来经过的100纳秒间隔数。
    /// <summary>
    /// 时间戳与DateTime互转
    /// </summary>
    public class TicksTimeConvert
    {
        /*
         * 时间戳10位的是秒,13位的是毫秒
         * 
         * 1秒=1000毫秒
         * 1毫秒=1000微秒
         * 1微秒=1000纳秒,纳秒也叫毫微秒
         * 
         * DateTime.Ticks的单位是100纳秒,
         * 每个计时周期表示一百纳秒,即一千万分之一秒。
         * 此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00(表示 DateTime.MinValue)以来经过的以 100 纳秒为间隔的间隔数。
         * **/


        

        #region 本地时间


        /// <summary>
        /// 获取当前本地时间
        /// </summary>
        /// <returns></returns>
        public static DateTime GetNowLocalTime()
        {
            return DateTime.Now;
            //return DateTimeOffset.Now.DateTime;
        }

        

        #endregion


        #region UTC时间
        

        /// <summary>
        /// 获取当前UTC时间
        /// </summary>
        /// <returns></returns>
        public static DateTime GetNowUTCTime()
        {
            return DateTime.UtcNow;
            //return DateTimeOffset.UtcNow.UtcDateTime;
        }

        /// <summary>
        /// 获取当前UTC时间戳
        /// </summary>
        /// <returns>当前UTC时间戳,毫秒,13位</returns>
        public static long GetNowUTCTicks()
        {
            //DateTimeOffset.UtcNow.ToUnixTimeSeconds() //秒,10位
            return DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();//毫秒,13位
        }

        /// <summary>
        /// UTC时间转UTC时间戳
        /// </summary>
        /// <param name="UTCTime"> UTC时间</param>
        /// <returns>UTC时间戳,毫秒,13位</returns>
        public static long UTCTime2UTCTicks(DateTime UTCTime)
        {
            return (new DateTimeOffset(UTCTime)).ToUnixTimeMilliseconds();
        }

        /// <summary>
        /// UTC时间戳转UTC时间
        /// </summary>
        /// <param name="UTCTicks">UTC时间戳,毫秒,13位</param>
        /// <returns>UTC时间</returns>
        public static DateTime UTCTicks2UTCTime(long UTCTicks)
        {
            return DateTimeOffset.FromUnixTimeMilliseconds(UTCTicks).UtcDateTime;
        }

        #endregion


        #region 本地和UTC 时间、时间戳互转
        /// <summary>
        /// UTC时间转本地时间
        /// </summary>
        /// <param name="dt">UTC时间</param>
        /// <returns>本地时间</returns>
        public static DateTime UTCTime2LocalTime(DateTime UTCTime)
        {
            return TimeZone.CurrentTimeZone.ToLocalTime(UTCTime);
        }

        /// <summary>
        /// 本地时间转UTC时间
        /// </summary>
        /// <param name="dt">本地时间</param>
        /// <returns>UTC时间</returns>
        public static DateTime LocalTime2UTCTime(DateTime LocalTime)
        {
            return LocalTime.ToUniversalTime();
        }


        /// <summary>
        /// 本地时间转UTC时间戳
        /// </summary>
        /// <param name="LocalTime">本地时间</param>
        /// <returns>UTC时间戳,毫秒</returns>
        public static long LocalTime2UTCTicks(DateTime LocalTime)
        {
            return UTCTime2UTCTicks(LocalTime2UTCTime(LocalTime));
        }

        /// <summary>
        /// UTC时间戳转本地时间
        /// </summary>
        /// <param name="UTCTicks">UTC时间戳,毫秒</param>
        /// <returns>本地时间</returns>
        public static DateTime UTCTicks2LocalTime(long UTCTicks)
        {
            return UTCTime2LocalTime(UTCTicks2UTCTime(UTCTicks));
        }


        #endregion


    }

免责声明:文章转载自《C# 时间戳与DateTime互转,使用 DateTimeOffset》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇重新理解:ASP.NET 异步编程Spring jar包详解(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java将Excel文件上传并解析为List数组

前端 //导入excel文件 layui.use('upload', function() { var upload =layui.upload; //指定允许上传的文件类型 var uploadInst =...

lua 的 os.date os.time

lua 的 os.date 跟 shell的 date 功能一样强大。 关于的时间的概念梳理: 1. 格林威治时间GMT时间是我们平时使用的时间,世界各地的时间不一样是因为时区不一样,国内基本统一使用的北京时间, 时区是东八区。http://www.24timemap.com/ 所以世界在同一时刻的时间是不一致的。 2. UTC时间 是 世界标准时间/原子...

Oracle中TIMESTAMP时间的显示格式

Oracle中的TIMESTAMP数据类型很多人用的都很少,所以即使最简单的一个查询返回的结果也会搞不清楚到底这个时间是什么时间点。 例如: 27-1月 -08 12.04.35.877000 上午 这个时间到底是几点呢?中午12:04分,那就错了,其实使用to_char函数转换后得到如下结果: 2008-01-27 00:04:35:877000 说明这...

微信公众号开发教程详细完整第1篇

| 版权声明:本文为博主原创文章,未经博主允许不得转载。 从2014.12月份左右接触微信公众号开发,短短续续也有了一年多在这期间做了不知道多少个公众号,各种奇葩的功能都有涉猎。从一无所知的小白,到对整个微信公众号生态的理解,不知道经历了多少个日日夜夜,鬼知道我经历了什么。此次教程不谈什么微信公众号O2O(基本死光了)也不谈什么分答,大字(基本被微信封的差...

PHP curl请求封装

/** * @Description: curl请求 * @Author: Yang * @param $url * @param null $data * @param string $method * @param array $header * @param bool $https * @param int $timeout * @...

vue+ts+router实现单页面打开新窗口,不显示侧边栏问题(返回上一页,保留数据)

1. 单页面点击打开详情页为新窗口打开    const param :any ={ id:row.RELIC_INFO_ID, categoryCode : row.CATEGORYID, classCode : row.CLASSID, reliCode:row.RELICCODE,}; 把普通的路由跳转方式: this.$router.pu...