2012-11-05 17 views
16

Non so come trasformare il timestamp fino ad oggi. ho:Data/ora data stringa

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView czas = (TextView)findViewById(R.id.textView1); 
    String S = "1350574775"; 
    czas.setText(getDate(S));   
} 



private String getDate(String timeStampStr){ 
    try{ 
     DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
     Date netDate = (new Date(Long.parseLong(timeStampStr))); 
     return sdf.format(netDate); 
    } catch (Exception ignored) { 
    return "xx"; 
    } 
} 

E la risposta è: 1970/01/16, ma è sbagliato.

risposta

48

provare questo se stai attaccando con formato "1.350.574,775 mila", che è in secondi:

private void onCreate(Bundle bundle){ 
    .... 
    String S = "1350574775"; 

    //convert unix epoch timestamp (seconds) to milliseconds 
    long timestamp = Long.parseLong(s) * 1000L; 
    czas.setText(getDate(timestamp)); 
} 



private String getDate(long timeStamp){ 

    try{ 
     SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
     Date netDate = (new Date(timeStamp)); 
     return sdf.format(netDate); 
    } 
    catch(Exception ex){ 
     return "xx"; 
    } 
} 
+1

Non funziona w con me, deve cambiare 1000 -> 1000L. –

+0

Grazie @PinoyCoder, è risolto per me! –

+0

grazie, questa risposta ha risolto il mio problema. ma come ottenere questa data in questo formato 22 lug 2017 –

4
String S = "1350574775"; 

Si sta inviando il timestamp in secondi, anziché in millisecondi.

Fare questo, invece:

String S = "1350574775000"; 

O, nel metodo getDate, moltiplicare per 1000L:

new Date(Long.parseLong(timeStampStr) * 1000L)