// ReSharper disable InconsistentNaming // ReSharper disable UnusedMember.Global #pragma warning disable SA1300, IDE1006 namespace NSExt.Extensions; /// /// DateTimeExtensions /// public static class DateTimeExtensions { /// /// 指定时间的世界协调时的unix时间戳形式 /// /// me /// unix时间戳 public static long TimeUnixUtc(this DateTime me) { return (me.ToUniversalTime().Ticks - 621355968000000000) / 10000000; } /// /// 指定时间的世界协调时的unix时间戳形式(毫秒) /// public static long TimeUnixUtcMs(this DateTime me) { return (me.ToUniversalTime().Ticks - 621355968000000000) / 10000; } /// /// ToString 的 Invariant 版本 /// public static string ToInvString(this DateTime me) { return me.ToString(CultureInfo.InvariantCulture); } /// /// 将一个过去时间对象与当前时间相减转换成“xx以前”的字符串, 如2秒以前, 3天以前 /// /// me /// 字符串 public static string UtcTimeAgo(this DateTime me) { var ts = DateTime.UtcNow - me; return ts.Days switch { > 0 => ts.Days + "天前" , _ => ts.Hours switch { > 0 => ts.Hours + "小时前" , _ => ts.Minutes switch { > 0 => ts.Minutes + "分钟前", _ => ts.Seconds + "秒前" } } }; } /// /// yyyy_MM /// public static string yyyy_MM(this DateTime me) { return me.ToString("yyyy-MM", CultureInfo.InvariantCulture); } /// /// yyyy_MM_dd /// public static string yyyy_MM_dd(this DateTime me) { return me.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); } /// /// yyyy_MM_dd_HH_mm /// public static string yyyy_MM_dd_HH_mm(this DateTime me) { return me.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); } /// /// yyyy_MM_dd_HH_mm_ss /// public static string yyyy_MM_dd_HH_mm_ss(this DateTime me) { return me.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); } /// /// yyyy_MM_dd_HH_mm_ss_fff /// public static string yyyy_MM_dd_HH_mm_ss_fff(this DateTime me) { return me.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture); } /// /// yyyyMM /// public static string yyyyMM(this DateTime me) { return me.ToString("yyyyMM", CultureInfo.InvariantCulture); } /// /// yyyyMMdd /// public static string yyyyMMdd(this DateTime me) { return me.ToString("yyyyMMdd", CultureInfo.InvariantCulture); } }