Java~時(shi)間戳小(xiao)知識
大叔對java時間戳(chuo)使(shi)用的總結
- Java里的Date對象有方法setTime,主要是將一個時間戳轉成一個日期對象,而這個時間戳的標準是unix標準,即當前時間與1970/1/1相差的毫秒數,記得是毫秒!
- .net里的時間戳與java不同,所有需要特殊處理一個它的其實時間,而且.net里時間戳為double,如何要給java傳輸,需要轉為long!
- java與.net時間在進行傳輸時,不建議直接使用時間字符串,因為會有兼容問題,還是建議使用時間戳為標準.
- 開一個.net里的一個擴展方法,主要用來生成java的long類型及起始時間的時間戳
- 注意java里的setTime,使用的時間戳參數為UTC時間戳
C#里(li)相(xiang)關時間(jian)戳的擴展方法
/// <summary> /// 時間幫助類 /// </summary> public class TimeHelper { /// <summary> /// 日期轉(zhuan)換成unix時間(jian)戳 /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public static long DateTimeToUnixTimestamp(DateTime dateTime) { var start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local); return Convert.ToInt64((dateTime - start).TotalMilliseconds); } /// <summary> /// unix時間戳轉換成日期(qi) /// </summary> /// <param name="unixTimeStamp">時間戳(chuo)(秒)</param> /// <returns></returns> public static DateTime UnixTimestampToDateTime(DateTime target, long timestamp) { var start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local); return start.AddSeconds(timestamp); } }
在C#里為java傳輸時(shi),需要把本地(di)時(shi)間轉為UTC時(shi)間
TimeHelper.DateTimeToUnixTimestamp(DateTime.Now.ToUniversalTime());
這樣在java時,直接setTime后,就是本地(di)時間了
Date d1 = new Date(); d1.setTime(1490232651510L); System.err.println(d1);
感謝各位的閱讀!
知識在于積累!