/// <summary> /// 获取日期的日常表达形式,要求最近三天依次用 {今天,昨天,前天} 表示 /// </summary> /// <param name="day"></param> /// <returns>要求最近三天依次用 {今天、昨天、前天} 表示</returns> public static String ToDayString(DateTime day) { var today = DateTools.GetNow(); if (day.Kind == DateTimeKind.Utc) { day = new DateTime(day.Year, day.Month, day.Day, day.Hour, day.Minute, day.Second, day.Millisecond, DateTimeKind.Unspecified).AddHours(DateTools.TimeZone); } else if (day.Kind == DateTimeKind.Local) { day = day.ToUniversalTime(); day = new DateTime(day.Year, day.Month, day.Day, day.Hour, day.Minute, day.Second, day.Millisecond, DateTimeKind.Unspecified).AddHours(DateTools.TimeZone); } if (IsDayEqual(day, today)) { return(Runtime.Lang.Get("today")); } if (IsDayEqual(day, today.AddDays(-1))) { return(Runtime.Lang.Get("yesterday")); } if (IsDayEqual(day, today.AddDays(-2))) { return(Runtime.Lang.Get("thedaybeforeyesterday")); } return(day.ToString("yyyy-MM-dd")); }
/// <summary> /// 获取时间的日常表达形式,格式为 {**小时前,**分钟前,**秒前},以及 {昨天,前天} /// </summary> /// <param name="t"></param> /// <returns>格式为 {**小时前,**分钟前,**秒前},以及 {昨天,前天}</returns> public static String ToTimeString(DateTime t) { var now = DateTools.GetNow(); if (t.Kind == DateTimeKind.Utc) { t = new DateTime(t.Year, t.Month, t.Day, t.Hour, t.Minute, t.Second, t.Millisecond, DateTimeKind.Unspecified).AddHours(DateTools.TimeZone); } else if (t.Kind == DateTimeKind.Local) { t = t.ToUniversalTime(); t = new DateTime(t.Year, t.Month, t.Day, t.Hour, t.Minute, t.Second, t.Millisecond, DateTimeKind.Unspecified).AddHours(DateTools.TimeZone); } var span = now.Subtract(t); if (cvt.IsDayEqual(t, now)) { if (span.Hours > 0) { return(span.Hours + Runtime.Lang.Get("houresAgo")); } else { if (span.Minutes == 0) { if (span.Seconds == 0) { return(Runtime.Lang.Get("justNow")); } else { return(span.Seconds + Runtime.Lang.Get("secondAgo")); } } else { return(span.Minutes + Runtime.Lang.Get("minuteAgo")); } } } if (cvt.IsDayEqual(t, now.AddDays(-1))) { return(Runtime.Lang.Get("yesterday")); } else if (cvt.IsDayEqual(t, now.AddDays(-2))) { return(Runtime.Lang.Get("thedaybeforeyesterday")); } else { return(t.ToString("yyyy-MM-dd")); } }