2015-07-10 255 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