2016-09-07 5 views
1

Ich arbeite an Codename ein Projekt, und ich kämpfe um Gerätezeit in UTC zu konvertieren. Ich benutze diesen Code:codenameone konvertieren Zeit zu utc

Calendar cal = Calendar.getInstance(); 
System.out.println(cal.getTimeZone()); 
TimeZone tzUTC = TimeZone.getTimeZone("UTC"); 
com.codename1.l10n.DateFormat dtfmt = new com.codename1.l10n.SimpleDateFormat("EEE, yyyy-MM-dd KK:mm a z"); 
dtfmt.setTimeZone(tzUTC); 
System.out.println("UTC: " + dtfmt.format(cal.getTime())); 

und Codenamen ein lehnen die setTImeZone Methode.

Ich benutze java.text.DateFormat aber wenn ich es ausführen, Condename man kann es auch kompilieren.

+0

Könnten Sie mir den Code in diesem 'com.codename1.l10n' Paket zeigen –

+0

Ich glaube, wir können eine Beschreibung des Pakets auf https://www.codenameone.com/javadoc/ finden. Es bestätigt, dass 'com.codename1.l10n.DateFormat' keine Methode' setTimeZone' hat. :-( –

+0

Ja, deshalb benutze ich java.text.DateFormat, aber wenn ich es ausführen wollte, weigerte sich der Compiler zu kompilieren. – squallbayu

Antwort

0

Verwendung:

java.util.Calendar cal = java.util.Calendar.getInstance(); 
    TimeZone tz = cal.getTimeZone(); 
    cal.setTime(new Date(System.currentTimeMillis() - tz.getRawOffset())); 
    com.codename1.l10n.DateFormat dtfmt = new com.codename1.l10n.SimpleDateFormat("EEE, yyyy-MM-dd KK:mm a"); 
    System.out.println("UTC: " + dtfmt.format(cal.getTime())); 

Dann UTC auf den String anhängen als der Wert immer UTC ist.

+0

Toda raba für die Antwort. Ich benutze das und das Datum immer immer den gleichen Wert: Mi Sep 07 11:32:47 WIB 2016 sun.util.calendar.ZoneInfo [id = "Asia/Jakarta", offset = 25200000, dstSavings = 0, useDaylight = false, Übergänge = 9, lastRule = null] Mi Sep 07 11:32:47 WIB 2016 sun.util.calendar.ZoneInfo [ID = "GMT", Offset = 0, dstSavings = 0, useDaylight = false, transitions = 0, lastRule = null] – squallbayu

+0

Nur für den Fall, dass ich nicht der einzige bin, der Hebräisch nicht kennt, denke ich, gibt es eine Erklärung in diesem Zitat: "Ich bin sicher, dass du dich erinnerst Das "Danke" oder "Danke" ist "Toda" auf Hebräisch, und ich möchte dich daran erinnern ou das für "Vielen Dank" sollten Sie sagen "Toda Raba." (von http://www.free-hebrew.com/tag/toda-raba/) –

+0

Ich habe meine Antwort bearbeitet. Diese Funktionalität ist auch in JavaSE schmerzhaft. Im Idealfall würde ich gerne zu JSR310 wechseln und diesen alten Code loswerden ... –

1

Es kann nicht wirklich Ihre eigentliche Frage beantworten, aber die folgenden Werke für mich:

Calendar cal = Calendar.getInstance(); 
    DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG); 
    TimeZone tzUtc = TimeZone.getTimeZone("UTC"); 
    df.setTimeZone(tzUtc); 
    System.out.println("UTC: " + df.format(cal.getTime())); 

ich nicht com.codename1.l10n.DateFormat weiß, so tut mir leid, ich nicht, dass Sie es helfen kann.

+1

Codename Eine Umgebung ist begrenzt, also gibt es keine solchen Dinge wie du erwähnt hast. Die Standard-Java-Bibliothek ist kaum geschnitten. –