location.getTime() format anpassen?

T

the_time

Ambitioniertes Mitglied
0
Hallo,
ich bevorzuge in meinem Fall "location.getTime()" auf "SimpleDateFormat" wie kann ich die Sekunden Ziffern von der Ausgabe der "location.getTime()"-Methode löschen? In dem Fall von SimpleDateFormat("dd.mm.yyyy hh:mm:ss") habe ich die "ss" am Ende gelöscht. Außerdem hat die Ausgabe von getTime() am Ende eine Null z.B "2015-04-05 23:56:40.0" ich will dann diese Zichen":40.0" von getTime() löschen.

PHP:
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub
            if (location != null) {
                double plong = location.getLongitude();
                double pLat = location.getLatitude();
                
//                Date d = new Date();
//                SimpleDateFormat sdf = new SimpleDateFormat("dd.mm.yyyy hh:mm");
//                String s = sdf.format(d);
//                textTime.setText(s);
                
                Timestamp time = new Timestamp(location.getTime());
                textTime.setText(time.toString());
                
                textLat.setText(Double.toString(pLat));
                textLong.setText(Double.toString(plong));

            }
        }
 
Was hindert dich daran, hier auch SimpleDateFormat zu verwenden?
 
eigentlich nichts aber ich wollte timestamp von location.gettime() verwenden und wollte wissen ob mein Bestreben machbar ist :) .
 
du löscht dann einfach die letzten 5 zeichen opder so aus dem string ist doch klar

Der ursprüngliche Beitrag von 07:05 Uhr wurde um 07:11 Uhr ergänzt:

z.B. so:

PHP:
s=s.subString(0,s.length()-6)//5 stellen zu löschen , nicht vergessen von length 1 abziehen

genau genommen extrahierst du heir nur die relevanten daten aus dems tring und überschreibst diesen mit diesen wieder
 
Ich verstehe dein Problem immer noch nicht. Du kannst doch das timestamp.getTime() über SimpleDateFormat oder auch andere Formatter umformatieren wie du möchtest und dann ausgeben :confused2:


Das mit dem letzten 5 Stellen wegschneiden klappt aber nur, wenn die Millisekunden zufällig einstellig sind. Wenn ich das richtig sehe, werden dort nachläufige Nullen weggelassen. Sauberer wäre, von hinten den Index des Doppelpunkts suchen und alles ab dort abschneiden.
 
Thyrion schrieb:
Sauberer wäre, von hinten den Index des Doppelpunkts suchen und alles ab dort abschneiden.

Genau das wollte ich auch noch schreiben aber hab ihm ja schon ne methode genannt einen string zu extrahieren ich dachte er könnte antizipieren

Wenn aber das der fall wäre extrahiere einfach zeichen 0 bis zu deinem letzten ":" dann braucht man nciht mit einer schleife die chars von hinten durchlesen


nur falls du es amchen willst heir ein snippet:

PHP:
for(int i=s.length-1;i>=0;i--)
{
    if(s.charAt(i)==':';             //oder ":" ich weiß nciht wie das bei java ist.in C++ werden char auf jeden fall mit ' ' angegeben
    {
        s=s.subString(0,i);
        break;
    }
}

du musst die stelle des ":" angeben die erste stelle die du angibst ist inclusiv die letze exlusiv


weitere lektüre :->Rheinwerk Computing :: Java ist auch eine Insel 4.2 Strings und deren Anwendung

hab mir das mal selbst durchgelesen und es gibt noch die Methode

s.lastIndexOf(':');//in Java wirds wohl egnauso wie in c++ gemacht super!!!

damit geht es dann wohl am besten(ausser er findet ':' nciht dann hast du ein Problem wenn du den Fehelr dann cniht abfängst)

PHP:
s=s.subString(0,s.lastIndexOf(':')>=0?s.lastIndexOf(':'):s.length()-1);
 
Zuletzt bearbeitet:
Danke! Ich habe es so gelöst.

PHP:
            SimpleDateFormat sdf = new SimpleDateFormat(
                        "dd.mm.yyyy hh:mm:ss",java.util.Locale.getDefault());
                String formatted = sdf.format(new Date(location.getTime()));
                textTime.setText(formatted);
 
Das neue Date-Objekt müsstest du dir eigentlich sparen können, da Timestamp von Date abgeleitet ist:

String formatted = sdf.format(location.gettime());
 

Ähnliche Themen

A
Antworten
0
Aufrufe
61
asterix68
A
B
Antworten
0
Aufrufe
663
Ben1703
B
A
Antworten
1
Aufrufe
885
koje71
koje71
Zurück
Oben Unten