2012-03-26 6 views
-1

Freunde,Berechnen von Datumsintervallen zwischen zwei Daten, da ich das Datum in einer Zeichenfolge habe. Wie könnte ich das tun ..?

Ich sollte wissen, wie die Datums- und Uhrzeitfunktionen für Android und Java zu implementieren.

Ich entwickle eine Anwendung, die das Datum der Veröffentlichung von Bildern zeigt. Ich zeige dieses Datum in einer Listenansicht. Beispielsweise. Ich zeige etwas wie // gepostet am: 20/3/2012. Statt dessen möchte ich das Zeitintervall zwischen zwei Datumsangaben und dem Datum, das ich im Typ string habe, berechnen. Außerdem möchte ich Sekunden, Minuten, Stunden berechnen. Wie kann ich das machen..?

Grüße, VELU

Blockquote

Nach einigen googeln habe ich auf diese Weise so zu tun. Endlich funktioniert es.

Blockquote

  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date endDate = null; 
    try { 
     endDate = formatter.parse(tochangeDate); 
    } catch (ParseException e) { 
    } 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date startDate = null; 

    String curentDateandTime = sdf.format(new Date()); 
    try { 
     startDate = formatter.parse(curentDateandTime); 
    } catch (ParseException e) { 
    } 

    long diff = (startDate.getTime()) - (endDate.getTime()); 

    int numOfDays = (int) (diff/(1000 * 60 * 60 * 24)); 
    int hours = (int) (diff/(1000 * 60 * 60)); 
    int minutes = (int) (diff/(1000 * 60)); 
    int seconds = (int) (diff/(1000)); 

Dies ist, was ich getan habe und es funktioniert Charme

+0

Zeichenfolge dateString = mCreatedDateinfo; \t \t \t \t SimpleDateFormat dateFormat = neu SimpleDateFormat ("yyyy/mm/dd"); \t \t Datum convertedDate = DatumFormat.Parse (DatumString); \t \t \t \t lange diff = convertedDate.getTime() - startDate.getTime(); // in Milli Sekunden \t \t int numOfDays = diff/(1000 * 60 * 60 * 24); \t \t \t \t Wo createddeininfo ist Vergangenheit Datum –

+0

Bitte bearbeiten Sie Ihren Beitrag und fügen Sie den obigen Code. Wenn Sie gut formatierte Fragen haben und zeigen, was Sie versucht haben, helfen wir Ihnen gerne. – coder

Antwort

1

Ich habe dies schnell in einer langatmigen Weise geschrieben, weil ich bereits die Bibliotheksprozeduren zur Hand hatte.

package com.me.mytime; 

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 

public class MyTimeActivity extends Activity 
{ 
    private static final String TAG = "MyTimeActivity"; 

    //Activity 
    private Context context; 

    /** 
    * Called when the activity is first created 
    */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     this.context = this; 

     Calendar c1 = stringToCalendar("2012-03-20"); 
     Calendar c2 = stringToCalendar("2012-03-26"); 
     String elapsedDaysText = getElapsedDaysText(c1, c2); 
    } 

    public static Calendar stringToCalendar(String dateString) 
    { 
     Calendar cal = Calendar.getInstance(); 
     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
     Date date = new Date(); 
     try 
     { 
      date = formatter.parse(dateString); 
      cal.setTime(date); 
     } 
     catch(ParseException e) 
     { 
      cal = null; 
     } 
     return cal; 
    } 

    public String getElapsedDaysText(Calendar c1, Calendar c2) 
    { 
     long milliSeconds1 = c1.getTimeInMillis(); 
     long milliSeconds2 = c2.getTimeInMillis(); 
     long periodSeconds = (milliSeconds2 - milliSeconds1)/1000; 
     long elapsedDays = periodSeconds/60/60/24; 
     String elapsedDaysText = String.format("%d days ago", elapsedDays); 
     return elapsedDaysText; 
    } 
} 
+0

@ Mark ..! Vielen Dank –

0

eine Methode Erstellen Sie das 20/3/2012 Zeichenfolge in ein pastDate Calendar-Objekt zu konvertieren. Dann verwende Kalender heute = Calendar.getInstance(); um die aktuelle Zeit zu bekommen. Erstellen Sie dann eine andere Methode, um die Anzahl der Tage zwischen today und pastDate herauszufinden. Schließlich, um es schöner zu machen, eine if-Anweisung, die behandelt, wenn innerhalb des letzten Tages (z. B. "innerhalb der letzten X Stunden") oder älter (z. B. wie Sie angefordert haben: "X Tage zuvor").

Verwandte Themen