2016-10-05 71 views
1

我試圖將Epoch時間轉換爲Scala中的Timestamp。將Epoch值轉換爲12小時格式時間戳

時代價值:1475596740

時間戳:1475596740 * 1000 => 1475596740000

結果時間戳總是給出結果在24小時format.But我想把它轉換至12小時格式java/Scala.I使用下面的代碼

val outputformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa"); 
    val formatteddTS = outputformat.format(ts) 
    println(outputformat.parse(formatteddTS).getTime) 

我需要比較這個結果與另一個時間戳值在12小時forma噸。如果我做了比較,結果是有線的。

時間1(時代)

2016年10月4日21:29:00.0

1475596740000(毫秒)

時間2(時間戳在12小時內格式)

2016-10-04 09:29:28.0

1475553568000(In mi lliseconds)

結果

TIME2-TIME1 =>-43172

在邏輯2016年10月4日21之間的時間差:29:00.0和2016年10月4日9點29分28.0爲28秒(28000),但我已經得到的結果是43172

+1

你應該在12小時格式結束時看到'AM'或'PM'。 –

+0

是的這是發生。但如果我將其轉換爲毫秒,那麼值保持不變。 – BDR

+0

所以你說不要讓它們變得一樣。 – mhasan

回答

0

我相信有什麼不對您的計算,因爲我可以看到你所提供

數據正確的結果
Calendar cal1 = Calendar.getInstance(); 
    Calendar cal2 = Calendar.getInstance(); 
    long time1 = 1475596740000l; 
    long time2 = 1475553568000l; 
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa"); 
    cal1.setTimeInMillis(time1); 
    System.out.println(dateFormat.format(cal1.getTime())); 
    cal2.setTimeInMillis(time2); 
    System.out.println(dateFormat.format(cal2.getTime())); 
    System.out.println(time1 - time2); 

和輸出:

2016-10-04 10:59:00 PM 
2016-10-04 10:59:28 AM 
43172000 

43172000是12小時左右,因爲它應該是

編輯

好吧,我用另一種方式,你提出和結果是一樣的再次 - 43172000:

String date1 = "2016-10-04 21:29:00"; 
    String date2 = "2016-10-04 09:29:28 AM"; 
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH); 
    SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa", Locale.ENGLISH); 
    Date dateObj1 = null; 
    Date dateObj2 = null; 
    try { 
     dateObj1 = format1.parse(date1); 
     dateObj2 = format2.parse(date2); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    System.out.println(dateObj1.getTime() - dateObj2.getTime()); 

而對於「2016-10-04 09:29:28 PM」它返回-28000。我相信這個問題在日期轉換的地方

+0

2016-10-04 21:29:00.0,2016-10-04 09:29:28.0將這個字符串轉換爲日期和getTime()從他們做差異。那麼你可以理解我的意思。 – BDR

+0

邏輯上,2016-10-04 21:29:00.0和2016-10-04 09:29:28.0之間的時差約爲28秒(28000),但我得到的結果是43172 – BDR

相關問題