/// <summary>
/// 時間戳
/// </summary>
public static class TimestampHelper
{
/// <summary>
/// 將c# DateTime時間格式轉換爲Unix時間戳格式
/// </summary>
/// <param name="time">時間</param>
/// <returns>long</returns>
public static long ConvertDateTimeToInt(DateTime time)
{
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
long t = (time.Ticks - startTime.Ticks) / 10000000; //除10000調整爲13位
return t;
}
/// <summary>
/// 時間戳轉爲C#格式時間
/// </summary>
/// <param name="timeStamp"></param>
/// <returns></returns>
public static DateTime ConvertStringToDateTime(string timeStamp)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(timeStamp + "0000000");
TimeSpan toNow = new TimeSpan(lTime);
return dtStart.Add(toNow);
}
/// <summary>
/// 時間戳轉爲C#格式時間10位
/// </summary>
/// <param name="curSeconds">Unix時間戳格式</param>
/// <returns>C#格式時間</returns>
private static DateTime GetDateTimeFrom1970Ticks(long curSeconds)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
return dtStart.AddSeconds(curSeconds);
}
/// <summary>
/// 驗證時間戳
/// </summary>
/// <param name="time"></param>
/// <param name="interval">差值(秒)</param>
/// <returns></returns>
public static bool IsTime(long time, double interval)
{
DateTime dt = GetDateTimeFrom1970Ticks(time);
//取現在時間
DateTime dt1 = DateTime.Now.AddSeconds(interval);
DateTime dt2 = DateTime.Now.AddSeconds(interval * -1);
if (dt > dt2 && dt < dt1)
{
return true;
}
return false;
}
}
.Net時間戳幫助類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.