1. 程式人生 > >.net 時間戳轉化為Java時間戳並轉化為時間

.net 時間戳轉化為Java時間戳並轉化為時間

最近專案中遇見這樣一個關於時間戳的問題,我們的後臺是.net , 具體的需求是這樣的。我向後臺請求,下載一個二進位制的檔案,然後就開始了漫長的解析二進位制檔案的過程,在朋友的幫助下,檔案解析其他資料均解析成功,只有一個拿到的時間戳,轉化出來的時間,總是不正確,然後經過一番查詢,最終找到解決辦法。分享給有同樣需求的小夥伴兒,幫人就是幫自己嘛

private static final long TICKS_AT_EPOCH = 621355968000000000L;
private static final long TICKS_PER_MILLISECOND = 10000;
private static TimeZone timeZone = TimeZone.getDefault();
/**
 * 將.net的時間戳轉化為Java的時間戳
 */
public static String fromDnetToJdate(long longTime) {

    Calendar calendar = Calendar.getInstance(timeZone);
    calendar.setTimeInMillis((longTime - TICKS_AT_EPOCH) / TICKS_PER_MILLISECOND);
    calendar.setTimeInMillis(calendar.getTimeInMillis() - calendar.getTimeZone().getRawOffset());
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String str= simpleDateFormat.format(calendar.getTime());
    return str;
}

親測有效。