2015-11-23 105 views
-1
String date = "2015-01-01T08:00:00-02:00"; 

,我需要得到的只有08:00如何得到這個字符串2015-01-01T08 08:00:00:00-02:00

能否請你幫解析器這個甲?

我試過下面的代碼。但不行

try { 
     String[] buffer = null; 
     buffer = dateString.split("T"); 

     DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

     return dateFormat.parse(buffer[0]); 
    } catch (ParseException e) { 
     Log.e("Error", e.getMessage()); 
     return null; 
    } 
} 
+2

你已經嘗試過的東西嗎?完成一些研究? –

+0

'date.substring(11,16)'怎麼樣? –

+2

我把我的代碼問題 –

回答

0

需要轉換這Calendar對象,那麼你可以讓你從它什麼都想要。

String dateInString = new java.text.SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss") 
     .format(cal.getTime()) 
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss"); 
Date parsedDate = formatter.parse(dateInString); 

使用此日期在日曆中進行設置。您可以使用它自己的日期對象,但不贊成使用https://docs.oracle.com/javase/7/docs/api/java/util/Date.html

1

如果您使用

String date = "2015-01-01T08:00:00-02:00"; 
ZonedDateTime ldt = ZonedDateTime.parse(date); 
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm"); 
System.out.println(dtf.format(ldt)); // 08:00 
// Thank @MadProgrammer for the following ones. :) 
System.out.println(ldt.toLocalTime()); // Also prints 08:00 
System.out.println(ldt.getHour()+":"+ldg.getMinute()); // Prints 8:0 but you could use 
                 // those variable for other things 
                 // if you do not need to print them 
+1

和/或使用'ldt.getHour()'和'ldt.getMinute()',如果您希望使用某些含義的實際值或使用'ldt.toLocalTime()'來執行比較 – MadProgrammer

+1

@MadProgrammer謝謝您,我也會增加這些可能性。 –

+0

@MadProgrammer ldt.getHour將修剪多餘的0並給出以下輸出:'8:0' –

0

我找到了解決辦法

String date = "2015-01-01T08:00:00-02:00"; 

    try{ 
     String[] buffer = null; 
     buffer = horaInicio.split("T"); 
     DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     dateFormat.parse(buffer[1]); 

    }catch (Exception e) { 
     Log.e("Error", e.getMessage()); 
    } 
相關問題