2017-02-21 3 views
-4

vor kurzem bekomme ich String "23:00".Wie konvertiert man Datumsformat in SimpleDateFormat auf Android?

Ich weiß konvertieren String

private String strtime; 
private Date datetime; 
SimpleDateFormat simtime = new SimpleDateFormat("HH:mm"); 

datatime = simtime.parse(strtime); 

Datumzeit ist bis heute -> `Do 1. JANUAR 23.00.00 GMT + 09: 00 1970

aber ich will bekommen nur 23:00

Wie wird das Datum in das Simplydateformat konvertiert?

+0

verwenden http://stackoverflow.com/a/26971028/7320259 überprüfen diese Hoffnung es –

+1

hilft Was werden Sie damit machen? Du hast '23: 00', dann parst du über SDF, dann bekommst du wieder' 23: 00'? – TruongHieu

+0

@TruongHieu vergleichen '23: 00' zu' aktueller Zeit' so, ich will nur bekommen '23: 00' – hyunwookcho

Antwort

0

Meine Antwort unten nicht Leute können helfen kann, aber irgendwie helfen @hyunwookcho.

Ich denke, dass Sie das HH:mm zu current time vergleichen möchten. Also empfehle ich Ihnen, auf andere Weise zu wechseln: Vergleichen Sie das String mit current HH:mm.

private String strtime = "23:00"; 
private String currentHours = ""; 
SimpleDateFormat simtime = new SimpleDateFormat("HH:mm"); 
currentHours = simtime.format(Calendar.getInstance().getTime()); 
if (strtime.equals(currentHours)){ 
//same hours 
}else{ 
//diff hours 
} 

UPDATE Wenn Sie zwischen zwei Zeitpunkten vergleichen möchten. Ich schlage vor, Sie dieses

String strtime1 = "23:00"; 
String strtime2 = "17:00"; 
String currentHours = ""; 
String[] strs_time1 = strtime1.split(":"); 
String[] strs_time2 = strtime2.split(":"); 

Calendar c_time1 = Calendar.getInstance(); 
c_time1.set(Calendar.HOUR_OF_DAY, Integer.parseInt(strs_time1[0])); 
c_time1.set(Calendar.MINUTE, Integer.parseInt(strs_time1[1])); 

Calendar c_time2 = Calendar.getInstance(); 
c_time2.set(Calendar.HOUR_OF_DAY, Integer.parseInt(strs_time2[0])); 
c_time2.set(Calendar.MINUTE, Integer.parseInt(strs_time2[1])); 

Calendar currentCal = Calendar.getInstance(); 

if (currentCal.getTimeInMillis() >= c_time2.getTimeInMillis() && currentCal.getTimeInMillis() <= c_time1.getTimeInMillis()){ 
    // FIRE IN THE HOLE 
} 
+0

danke, Mehr Detail, ich habe 2 Mal '17: 00' und' 23: 00', wenn ich App boote, wenn die aktuelle Zeit zwischen '17: 00' und '23: 00',' A' Methode ausführen. – hyunwookcho

+0

Sie müssen also Teilzeichenfolgen von Hand und setzen Sie es in 'Calendar.getInstance()'. Ich werde meinen Code aktualisieren. – TruongHieu

+0

danke, und ich habe eine Frage. '17: 00' und' 23: 00' ist String. (nicht Datumsformat), aktuelle Uhrzeit ist das Datenformat. String mit Datum vergleichen ist möglich? – hyunwookcho

0
public static final String TimeFormate = "hh:mm a"; 
    public static String getCurrentDateTime() { 
    SimpleDateFormat from = new SimpleDateFormat(TimeFormate); 
    from.setTimeZone(TimeZone.getDefault()); 
    String current = from.format(new Date()); 
    return current; 
} 

es wird Ihnen sicher helfen, wird es Ihnen Ihr Format Perspektive Zeit bieten

+0

danke, aber 'current' ist String. Ich will Datumsformat '" 23:00 "' – hyunwookcho

Verwandte Themen