public static class AbpExtensions
{
/// <summary>
/// 返回10位時間戳 Timestamp
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public static int ToUnixTimestamp(this DateTime target)
{
if (target.Kind == DateTimeKind.Unspecified)
target = target.ToLocalTime();
return (int)((target.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
}
/// <summary>
/// 將10位時間戳Timestamp轉換成日期
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public static DateTime ToLocalDateTime(this int target)
{
var date = new DateTime(621355968000000000 + (long)target * (long)10000000, DateTimeKind.Utc);
return date.ToLocalTime();
}
}
上面兩個靜態方法已經被封裝為擴展方法,可以在 DateTime 類型和 int 類型通過 “.” 調用。
時間戳詞條說明:
時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數。通俗的講, 時間戳是一份能夠表示一份數據在一個特定時間點已經存在的完整的可驗證的數據。 它的提出主要是為用戶提供一份電子證據, 以證明用戶的某些數據的產生時間。 在實際應用上, 它可以使用在包括電子商務、 金融活動的各個方面, 尤其可以用來支撐公開密鑰基礎設施的 “不可否認” 服務。
各種語言間相互轉換請參見:http://www.matools.com/timestamp