文章出處
文章列表
大叔對java時間戳使用的總結
- Java里的Date對象有方法setTime,主要是將一個時間戳轉成一個日期對象,而這個時間戳的標準是unix標準,即當前時間與1970/1/1相差的毫秒數,記得是毫秒!
- .net里的時間戳與java不同,所有需要特殊處理一個它的其實時間,而且.net里時間戳為double,如何要給java傳輸,需要轉為long!
- java與.net時間在進行傳輸時,不建議直接使用時間字符串,因為會有兼容問題,還是建議使用時間戳為標準.
- 開一個.net里的一個擴展方法,主要用來生成java的long類型及起始時間的時間戳
- 注意java里的setTime,使用的時間戳參數為UTC時間戳
C#里相關時間戳的擴展方法
/// <summary> /// 時間幫助類 /// </summary> public class TimeHelper { /// <summary> /// 日期轉換成unix時間戳 /// </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時間戳轉換成日期 /// </summary> /// <param name="unixTimeStamp">時間戳(秒)</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傳輸時,需要把本地時間轉為UTC時間
TimeHelper.DateTimeToUnixTimestamp(DateTime.Now.ToUniversalTime());
這樣在java時,直接setTime后,就是本地時間了
Date d1 = new Date(); d1.setTime(1490232651510L); System.err.println(d1);
感謝各位的閱讀!
知識在于積累!
文章列表
全站熱搜
留言列表