LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

C# 几个常用的获取系统时间方法

admin
2026年10月17日 14:58 本文热度 167

/// <summary>    /// 系统时间帮助类    /// 兼容 Windows / Linux    /// </summary>    public static class SystemTimeHelper    {        /// <summary>        /// 获取当前本地时间        /// </summary>        public static DateTime Now        {            get { return DateTime.Now; }        }        /// <summary>        /// 获取当前 UTC 时间        /// </summary>        public static DateTime UtcNow        {            get { return DateTime.UtcNow; }        }        /// <summary>        /// 获取当前 Unix 时间戳(秒)        /// 例如:1727587200        /// </summary>        public static long UnixTimestamp        {            get            {                return ToUnixTimestamp(DateTime.UtcNow);            }        }        /// <summary>        /// 获取当前 Unix 时间戳(毫秒)        /// 例如:1727587200123        /// </summary>        public static long UnixTimestampMilliseconds        {            get            {                return ToUnixTimestampMilliseconds(DateTime.UtcNow);            }        }        /// <summary>        /// 获取当前 Unix 时间戳(Ticks)        /// </summary>        public static long UnixTimestampTicks        {            get            {                return DateTime.UtcNow.Ticks - UnixEpoch.Ticks;            }        }        /// <summary>        /// Unix 时间起点        /// </summary>        private static readonly DateTime UnixEpoch =            new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);        /// <summary>        /// DateTime 转 Unix 秒级时间戳        /// </summary>        public static long ToUnixTimestamp(DateTime time)        {            return (long)(ToUtc(time) - UnixEpoch).TotalSeconds;        }        /// <summary>        /// DateTime 转 Unix 毫秒级时间戳        /// </summary>        public static long ToUnixTimestampMilliseconds(DateTime time)        {            return (long)(ToUtc(time) - UnixEpoch).TotalMilliseconds;        }        /// <summary>        /// Unix 秒级时间戳转 DateTime UTC        /// </summary>        public static DateTime FromUnixTimestamp(long timestamp)        {            return UnixEpoch.AddSeconds(timestamp);        }        /// <summary>        /// Unix 毫秒级时间戳转 DateTime UTC        /// </summary>        public static DateTime FromUnixTimestampMilliseconds(long timestamp)        {            return UnixEpoch.AddMilliseconds(timestamp);        }        /// <summary>        /// 获取当前时间距离 Unix Epoch 的 TimeSpan        /// </summary>        public static TimeSpan UnixTimeSpan        {            get            {                return DateTime.UtcNow - UnixEpoch;            }        }        /// <summary>        /// 获取当前 DateTime 的 TimeSpan        /// </summary>        public static TimeSpan ToTimeSpan(DateTime time)        {            return ToUtc(time) - UnixEpoch;        }        /// <summary>        /// TimeSpan 转 Unix 秒级时间戳        /// </summary>        public static long TimeSpanToUnixTimestamp(TimeSpan timeSpan)        {            return (long)timeSpan.TotalSeconds;        }        /// <summary>        /// TimeSpan 转 Unix 毫秒级时间戳        /// </summary>        public static long TimeSpanToUnixTimestampMilliseconds(TimeSpan timeSpan)        {            return (long)timeSpan.TotalMilliseconds;        }        /// <summary>        /// 获取当前时间字符串        /// yyyy-MM-dd HH:mm:ss        /// </summary>        public static string NowString        {            get            {                return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");            }        }
        /// <summary>        /// 获取当前时间的标准字符串        /// </summary>        public static string GetNowString(string format)        {            return DateTime.Now.ToString(format);        }
        /// <summary>        /// 获取 UTC 时间的标准字符串        /// </summary>        public static string GetUtcNowString(string format)        {            return DateTime.UtcNow.ToString(format);        }        /// <summary>        /// 获取当前时间字符串,包含毫秒        /// yyyy-MM-dd HH:mm:ss.fff        /// </summary>        public static string NowStringMilliseconds        {            get            {                return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");            }        }        /// <summary>        /// 获取当前 UTC 时间字符串        /// </summary>        public static string UtcNowString        {            get            {                return DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");            }        }        /// <summary>        /// DateTime 转 UTC        /// </summary>        private static DateTime ToUtc(DateTime time)        {            if (time.Kind == DateTimeKind.Utc)                return time;            if (time.Kind == DateTimeKind.Local)                return time.ToUniversalTime();            // Unspecified 默认按照本机本地时间处理            return TimeZoneInfo.ConvertTimeToUtc(                DateTime.SpecifyKind(time, DateTimeKind.Unspecified));        }    }

使用方式:

DateTime now = SystemTimeHelper.Now;
DateTime utcNow = SystemTimeHelper.UtcNow;
long timestamp = SystemTimeHelper.UnixTimestamp;
long timestampMs = SystemTimeHelper.UnixTimestampMilliseconds;
TimeSpan timeSpan = SystemTimeHelper.UnixTimeSpan;
string time = SystemTimeHelper.NowString;
string timeMs = SystemTimeHelper.NowStringMilliseconds;
返回:
Now                         2026-09-29 08:52:30UtcNow                      2026-09-29 00:52:30UnixTimestamp               1790643150UnixTimestampMilliseconds   1790643150123UnixTimeSpan                20729.xxx 天NowString                   2026-09-29 08:52:30NowStringMilliseconds       2026-09-29 08:52:30.123


该文章在 2026/10/17 14:58:45 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-1  粤公网安备44030602007207号