# Unixtime umwandeln



## Nathy (15. Jan 2007)

Hallo

Gibt es eine Möglichkeit die Unixtime in Java in das Format 2007-01-01 12:00:00 umzuwandeln?

Gruss und danke


----------



## thE_29 (15. Jan 2007)

Sicha 

SimpleDateFormat!


----------



## padde479 (15. Jan 2007)

Kleiner Beispielcode:

```
/**
 * Liefert das Datum im Format "yyyy.MM.dd HH:mm:ss" zurück.
 * @param time long
 * @return Das Datum als String
 */
  public static String getYYYYMMDDHHMMSS(long time) {
    Date date = new Date(time);
    TimeZone zone = TimeZone.getDefault();

    Calendar cal = Calendar.getInstance(zone, Locale.GERMANY);
    SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    dateformat.setCalendar(cal);
    return dateformat.format(date);
  }
```


----------



## Nathy (15. Jan 2007)

Hallo

Ich habe die Methode einmal ausprobiert.
Leider erhalte ich bei der Eingabe 1168873871 (entspricht 2007-01-15 16:11:11)
die Ausgabe :1970-01-14 13:41:13
Was stimmt dort nicht.
Hier der Code:


```
public class TimeConvert {
    
    public TimeConvert(){        
    }

    public static String getYYYYMMDDHHMMSS(int time) {
        Date date = new Date(time);
        TimeZone zone = TimeZone.getDefault();

        Calendar cal = Calendar.getInstance(zone, Locale.GERMANY);
        SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateformat.setCalendar(cal);
        System.out.println(dateformat.format(date));
        return dateformat.format(date);
    }
    
    public static void main(String[] args) {
        TimeConvert zeit = new TimeConvert();
        int s = 1168873871;
        zeit.getYYYYMMDDHHMMSS(s);
    }    
}
```


----------



## thE_29 (15. Jan 2007)

Dachte ichs mir doch 

Ich habe es eigentlich schon geschrieben gehabt, habs dann aber wieder gelöscht!

C speichert die Uhrzeit seit 1.1.1970 in Sekunden ab!

Java hingegen in Millisekunden! Dh, du musst deine Zahl einfach noch * 1000 und dann umwandeln!


----------



## Nathy (15. Jan 2007)

Danke für die Antwort.
Habe jetzt die selbe Zahl noch mit 1000 multipliziert und es ergibt dann: 1970-01-08 11:32:46
Da muss also sonst noch irgendwo ein Fehler sein.
Hat jemand eine Idee?

Gruss


----------



## Roar (15. Jan 2007)

padde hat dir doch schon den richtigen code gegeben, und du hast ihn editiert und eine nfehler eingebaut. warum benutzt du nicht den korrekten originalen code :roll: :bae:


----------



## Nathy (15. Jan 2007)

Was habe ich für einen Fehler gemacht?
Meinst du die Änderung von int nach long.
Das ist nicht das Problem. Habe es auch scho mit long versucht.

Gruss


----------



## Roar (15. Jan 2007)

doch das ist das problem.
1168873871000 passt nicht in einen int


----------



## Nathy (15. Jan 2007)

Stimmt es war ein Problem mit dem Datentyp.
Danke für die Hilfe.

Gruss


----------

