標籤:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 時間戳記demo{ /* * Unix時間戳記(Unix timestamp),或稱Unix時間(Unix time)、 * POSIX時間(POSIX time),是一種時間表示方式, * * 定義為從格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數 * **/ class Program { static void Main(string[] args) { string timeStamp = GetTimeStamp(); Console.WriteLine(GetTimeStamp()); DateTime currentDate = GetTime( timeStamp); string datestring = currentDate.ToString("yyyy-MM-dd HH:mm:ss fff"); Console.WriteLine(datestring); Console.ReadKey(); } /// <summary> /// 擷取時間戳記 /// </summary> /// <returns></returns> public static string GetTimeStamp() { TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt64(ts.TotalSeconds).ToString(); } /// <summary> /// DateTime時間格式轉換為Unix時間戳記格式 /// </summary> /// <param name="time"> DateTime時間格式</param> /// <returns>Unix時間戳記格式</returns> public static int ConvertDateTimeInt(System.DateTime time) { System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); return (int)(time - startTime).TotalSeconds; } /// <summary> /// 時間戳記轉為C#格式時間 /// </summary> /// <param name="timeStamp">Unix時間戳記格式</param> /// <returns>C#格式時間</returns> public static DateTime GetTime(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); } }}
C# 時間戳記與時間相互轉化