在項目開發過程中,有時會遇到不同程序之間相互調用數據,數據中不免會包含時間,比如ASP.NET調用PHP,牽扯到時間就要做一下處理,PHP程序中一般存取的都是UNIX時間,不像ASP.NET存儲的是年月日時分秒,這樣就需要做一下轉換,代碼如下:
一、將系統時間轉換成UNIX時間戳(精確到秒)
1 DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)); 2 DateTime dtNow = DateTime.Parse(DateTime.Now.ToString()); 3 TimeSpan toNow = dtNow.SuBTract(dtStart); 4 string timeStamp = toNow.Ticks.ToString(); 5 timeStamp = timeStamp.Substring(0,timeStamp.Length - 7);
二、將UNIX時間戳轉換成系統時間(精確到秒)
1 string timeStamp = "1288368000"; 2 DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)); 3 long lTime = long.Parse(timeStamp + "0000000"); 4 TimeSpan toNow = new TimeSpan(lTime); 5 DateTime dtResult = dtStart.Add(toNow);
這兩個方法比較簡單,大家可以把他們封裝成靜態函數,直接調用。
補充:
獲取時間戳(秒)
1 (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
獲取時間戳(毫秒)
1 (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000
C#中字符竄 base64編碼 與解碼:
編碼:
1 byte[] bytes=Encoding.Default.GetBytes("要轉換的字符串"); 2 byte[] b=Encoding.UTF8.GetBytes("要轉換的字符串"); //轉換為UFT8編碼 3 4 Convert.ToBase64String(bytes);
解碼:
1 byte[] outputb = Convert.FromBase64String("ztKwrsTj"); 2 string orgStr= Encoding.Default.GetString(outputb);
結束!