public static int GetRoughTimeStamp(TimeStampUnit timeStampUnit) { int roughTimeStamp = RoughTimeStamp; if (timeStampUnit == TimeStampUnit.Second) { return(roughTimeStamp); } //分 roughTimeStamp = Mathf.FloorToInt(roughTimeStamp / 60f); if (timeStampUnit == TimeStampUnit.Minute) { return(roughTimeStamp); } //時 roughTimeStamp = Mathf.FloorToInt(roughTimeStamp / 60f); if (timeStampUnit == TimeStampUnit.Hour) { return(roughTimeStamp); } //日 roughTimeStamp = Mathf.FloorToInt(roughTimeStamp / 24f); if (timeStampUnit == TimeStampUnit.Day) { return(roughTimeStamp); } throw new System.NullReferenceException("Invalid TimeStampUnit"); }
/// <summary> /// 时间转为时间戳(From datetime to timestamp) /// </summary> /// <param name="value">时间</param> /// <param name="unit">精确单位</param> /// <returns></returns> public static long?TryToTimeStampFromDateTime(DateTime value, TimeStampUnit unit = TimeStampUnit.Second) { try { return(value.ToUtcTimeStamp(unit)); } catch { return(null); } }
/// <summary> /// 获取当前DateTime实例的时间戳(Gets the timestamp of the current time instance) /// </summary> /// <param name="value"></param> /// <param name="unit">精确单位</param> /// <returns></returns> public static long ToUtcTimeStamp(this DateTime value, TimeStampUnit unit = TimeStampUnit.Second) { var localInitTime = TimeZoneInfo.ConvertTimeFromUtc(_unix_init_time, TimeZoneInfo.Local); var timespan = value - localInitTime; if (unit == TimeStampUnit.Second) { return(Convert.ToInt64(timespan.TotalSeconds)); } else { return(Convert.ToInt64(timespan.TotalMilliseconds)); } }
/// <summary> /// 时间转为时间戳(datetime to timestamp) /// </summary> /// <param name="value">时间</param> /// <param name="unit">单位</param> /// <returns></returns> public static long DateTimeToTimeStamp(DateTime value, TimeStampUnit unit = TimeStampUnit.Second) { return(value.ToUtcTimeStamp(unit)); }