2015-07-10 301 views
-1

我有一個看起來像「2015-06-07 16:01:33.0」的字符串。我想將它轉換成一個unix時間戳。首先,我使用Calendar實用程序將其轉換爲Date對象。我如何將日期轉換爲紀元時間?日期到Unix時間戳

String origintime = "2015-06-07 16:01:33.0"; 
String year = origintime.split(" ")[0].split("-")[0];    
String month = origintime.split(" ")[0].split("-")[1]; 
String day = origintime.split(" ")[0].split("-")[2]; 

String hour = origintime.split(" ")[1].split(":")[0]; 
String mins = origintime.split(" ")[1].split(":")[1]; 
String secs = origintime.split(" ")[1].split(":")[2].replace(".0",""); 

Calendar cal = Calendar.getInstance();  
cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day)); 
cal.set(Calendar.MONTH, Integer.parseInt(month)); 
cal.set(Calendar.YEAR, Integer.parseInt(year)); 
cal.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hour)); 
cal.set(Calendar.MINUTE,Integer.parseInt(mins)); 
cal.set(Calendar.SECOND,Integer.parseInt(secs)); 
String strdate = null; 
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); 

if (cal != null) { 
    strdate = sdf.format(cal.getTime()); 
} 
System.out.println(strdate); 
+0

可能重複的[從日期()獲取unix時間戳](http://stackoverflow.com/questions/7784421/getting-unix-timestamp-from-date) – Stefan

+2

請在發佈之前搜索StackOverflow。這個話題之前已經被很多次討論過了。 –

回答

0

我認爲你可以搜索在StackOverflow的答案,而不是發佈一個新的問題,因爲它使StackOverflow的更好,我只是做了快速搜索,並在這裏,他們是: Getting unix timestamp from Date()

或這裏該代碼直截了當:

Date currentDate = new Date(); 
currentDate.getTime()/1000; 

最近,人們更喜歡jodaTime:

DateTime dateTime = new DateTime(); 
long unix = dateTime.getMillis()/1000; 
+1

發佈問題答案只會鼓勵更多重複問題,並在第一句中與您自己的建議相矛盾。相反,使用請求此問題的關閉時的StackOverflow功能。 –

+0

謝謝羅勒,我沒有看到封閉的問題功能! – super1ha1