2016-12-20 2 views
0

Ich mache einige Arbeit, welches Szenario ist , ich empfange Datum und Uhrzeit vom Server als Datenfeld. , d. H. 2016-12-20T16: 22: 00 + 05: 00. Ich habe einen Spinner, in demZeitzone in Android App einstellen

*

  • (+12: 00 bis -12: 00) Werte von jeder Stunde

* Jetzt muss ich dieses Datum verwandeln & Zeit, die sich auf den Spinner-Wert bezieht. , d. H. Wenn der Spinner +12: 00 ausgewählt hat, dann wird es so aussehen: 2016-12-21T04: 22: 00 + 12: 00. Bitte schlagen Sie Lösungen vor. Danke :)

+0

Ihre Frage ist nicht klar. Plz erarbeiten richtig – Nainal

+0

http://stackoverflow.com/questions/22814263/how-set-timezone-in-android Verweisen Sie das :) –

+0

möchten Sie die Zeit um 12 Stunden erhöhen, wenn Benutzer +12: 00 ausgewählt hat – Nainal

Antwort

1

Versuchen Sie es mit Java String-Funktionen wie unter

String time="2016-12-20T16:22:00+05:00"; 
String[] s =time.split("'+'"); 
String time1=s[0]; 


    String value=value from spinner; 
    SimpleDateFormat readDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
    readDate.setTimeZone(TimeZone.getTimeZone("GMT")); // missing line 
    Date date = null; 
    try { 
     date = readDate.parse(time1); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    SimpleDateFormat writeDate = new SimpleDateFormat("dd.MM.yyyy, HH.mm.ss"); 
    writeDate.setTimeZone(TimeZone.getTimeZone("GMT+"+value)); 
//final time string  
String s1 = writeDate.format(date); 
+0

Sehr geehrte Rajesh, Ihre Lösung ist teilweise richtig, aber setzt nur GMT Zeit, ich brauche Datum zu ändern, sowie wenn die Zeit überschritten die Zahl 24. dann brauche ich sich um den Wechsel von Jahr und Monat kümmern. ie wenn ich Zeit vom Server habe (2016-12-31T22: 22: 22 + 05: 00) und meine select GMT ist +12: 00 dann wäre es so 2017-1-1T05: 22: 22+ 12:00 Bitte beachten Sie auch das Differenzdatum –

+0

Ich verstehe, was Sie brauchen.überprüfen Sie den neuen Code oben! –

+0

Ihre Lösung ist richtig :) Bit Fehlerkorrektur verwenden Sie '+' in Kommas und verwenden String s1. –

0

versuchen Sie diese Methode

public String convertTimeZone(String date, String timeZone) throws ParseException { 
    StringBuffer buffer = new StringBuffer(date); 
    date = buffer.reverse().toString().replaceFirst(":",""); 
    date = new StringBuffer(date).reverse().toString(); 
    SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); 
    inFormat.setTimeZone(TimeZone.getTimeZone("GMT" + timeZone)); 
    Date toConvert = inFormat.parse(date); 
    date = inFormat.format(toConvert); 
    return new StringBuffer(date).insert(date.length()-2, ":").toString(); 
} 
Verwandte Themen