Parse JSON in UNIX data in Java / Android senza alcuna libreria

Ho un arrays JSON ricevuto dal mio server. [{"date": "1418056895", ... }] una data come timestamp String – ad esempio, [{"date": "1418056895", ... }] – e devo analizzarla nel nostro formato di giorno. Come faccio a fare questo? Ho provato ma ho sempre l'anno come il 1970.

Nota: Il mio formato JSON è in UNIX.

  • distriggers il button con background personalizzato android
  • android studio 1.2 gradle è molto lento
  • Come progettare una mappa interna di un edificio?
  • Imposta l'ID risorsa disegnabile in android: src per ImageView utilizzando l'associazione dei dati in Android
  • Due app con ID utente condiviso
  • API Google Sheets v4 - Come get l'ultima row con valore?
  •  JSONObject feedObj = (JSONObject) feedArray.get(i); FeedItem item = new FeedItem(); item.setTimeStamp(feedObj.getString("date")); public void setTimeStamp(String timeStamp) { this.timeStamp = timeStamp; } public String getTimeStamp() { return timeStamp; } 

    In un'altra class, analizzo il timestamp per visualizzarlo:

     List<FeedItem> feedItems = ...; FeedItem item = feedItems.get(position); CharSequence timeAgo = DateUtils.getRelativeTimeSpanString( Long.parseLong(item.getTimeStamp()), System.currentTimeMillis(), DateUtils.SECOND_IN_MILLIS); 

    Tuttavia la data visualizzata è sempre nel 1970.

    Utilizzando valori come 1403375851930 sembra funzionare come previsto (visualizza una data contemporanea).

  • Ci sono dfferenze tra le versioni di Windows e Linux del SDK Android?
  • Aprire il browser su notifica push
  • Come get le Dimensioni di un disegno in un ImageView?
  • Come fare: Parcelle una bitmap in Android
  • Ottenere lo stato di connessione VPN in Android
  • Retrofit: parametri di query multiple in command @GET?
  • 3 Solutions collect form web for “Parse JSON in UNIX data in Java / Android senza alcuna libreria”

    Se stai analizzando correttamente JSON,

     feedObj.getString("date"); 

    tiene la tua data. Stai leggendo la data come String. Devi convertirlo a lungo.

     public static void main(String[] args) { Calendar cal = Calendar.getInstance(); Long timestamp = Long.parseLong("1418056895"); //Long.parseLong(feedObj.getString("date")); cal.setTimeInMillis(timestamp * 1000L); DateFormat format = new SimpleDateFormat("MM/dd/yyyy"); // what ever format you need. System.out.println(format.format(cal.getTime())); // this will be in MM/dd/yyyy //item.setTimeStamp(format.format(cal.getTime())); } 

    è inoltre ansible utilizzare feedObj.getLong ("data") ; per get la data in formato long time direttamente, ma dipende da quale libreria JSON utilizzi.

    Non capisco davvero quello che stai cercando di fare qui. Ma se stai chiedendo è quello di convertire quella data che si ottiene in forma umana leggibile, si dovrebbe dare un'occhiata a Epoch Converter . La data viene restituita al timestamp epoca. È ansible convertire lo stesso in un module leggibile umano n java utilizzando il seguente codice.

     String date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (epoch*1000)); 

    Ho controllato la tua documentazione api e la data che hai in risposta è in formato unix come descritto qui wall.post

    È ansible convertire utilizzando il metodo descritto qui Convert Unix time stamp fino ad oggi in java

    Una volta convertito è ansible formattare la data come descritto di seguito.

      private List<FeedItem> feedItems; TextView timestamp FeedItem item = feedItems.get(position); Long timeObject = Long.parseLong(getTimeStamp()); //use the timeObject and convert it in the String as described // in above link to convert timestamp in date object than in String //Once available set it again in timestamp timestamp.setText(formattedDate); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.