1. 程式人生 > > C#中DateTime和秒之間的互轉

C#中DateTime和秒之間的互轉

本來很少用到C#,但現在有些事情在用C#,所以不也不得不面臨其中的一些問題

這幾天用到了DateTime和秒之間的實際轉換,前幾天也有用到,但當時只是一個相對時間,不需要關心具體的值,所以當時寫了程式碼也就沒有多追究它了,今天必需面對正確的這個轉換,只好翻看了好幾個網址,大多數都寫的似乎看不懂

以下為各項的實現:

// 時間分量轉換成實際的秒數
public static ulong GetDateTime(int year, int month, int day, int hour, int minute, int second)
{
 ulong dateVal = 0;
 try
 {
  DateTime dt = new DateTime(year, month, day, hour, minute, second);
  DateTime dt0 = new DateTime(1970, 1, 1);
  TimeSpan ts = new TimeSpan(dt.Ticks - dt0.Ticks);
  dateVal = (ulong)ts.TotalSeconds;
 }
 catch (Exception e)
 {
 }
 return dateVal;
}

// 秒數轉換成日期
public static DateTime dtVal2Bcd(ulong dtVal)
{
 DateTime dt = new DateTime(1970, 1, 1);
 dt = dt.AddSeconds(dtVal);
 return dt;
}

如果是直接用DateTime.Ticks,則結果完全不對,不過它只用作相對時間應該是沒有問題的,但不能用作絕對時間