// ReSharper disable InconsistentNaming
// ReSharper disable UnusedMember.Global
#pragma warning disable SA1300
#pragma warning disable IDE1006
namespace NSExt.Extensions;
///
/// DateTimeExtensions
///
public static class DateTimeExtensions
{
///
/// 将一个过去时间对象与当前时间相减转换成“xx以前”的字符串, 如2秒以前, 3天以前
///
/// me
/// 字符串
public static string TimeAgo(this DateTime me)
{
var ts = DateTime.Now - me;
return ts.Days > 0 ? ts.Days + "天前" :
ts.Hours > 0 ? ts.Hours + "小时前" :
ts.Minutes > 0 ? ts.Minutes + "分钟前" : ts.Seconds + "秒前";
}
///
/// 指定时间的世界协调时的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;
}
///
/// 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);
}
}