Avatar billede encorez Juniormester
16. september 2017 - 20:39 Der er 6 kommentarer og
1 løsning

DateTime i Java - udtræk og læg minutter til

Hej

Jeg har en tabel i MySQL som jeg løber igennem.
Heri er en dato som DateTime (e.g. "2017-09-16 20:35:13").

I Java har jeg brug for at
1. udtrække den DateTime dato,
2. derefter lægge e.g. 5 minutter til den dato -> "Ny-Dato",
3. og derefter skal jeg finde en værdi i MySQL på den nye dato, dvs. "Ny-Dato", så nok skal være en string når jeg skal bruge den i en query.

Lige nu udtrække jeg den Datime med
"Date inserted = rs.getDate("inserted");"
men det giver kun datoen uden tiden.

Kan nogen forklare med et eksempel hvordan jeg skriver punkt 1 og 2?
Jeg skulle mene jeg selv kan caste til en String i punkt 3, håber jeg :)
Avatar billede arne_v Ekspert
16. september 2017 - 23:00 #1
Re 1)

Date inserted = rd.getTimeStamp("inserted");
Avatar billede arne_v Ekspert
16. september 2017 - 23:00 #2
re 3)

Nej du skal ikke konvertere den til String.

Brug PreparedStatement og setTimeStamp.
Avatar billede arne_v Ekspert
16. september 2017 - 23:02 #3
re 2)

Enten getTime og laeg 5*60*1000 til og lave nyt Date objekt.

Eller over i en Calendar og brug add og getTime to at komme tilbage til Date objekt.
Avatar billede arne_v Ekspert
17. september 2017 - 02:44 #4
re 2)


import java.util.Calendar;
import java.util.Date;

public class AddTimeFun {
    private static void first() {
        Date d1 = new Date();
        Date d2 = new Date(d1.getTime() + 5 * 60 * 1000L);
        System.out.println(d1 + " -> " + d2);
    }
    private static void second() {
        Date d1 = new Date();
        Calendar c = Calendar.getInstance();
        c.setTime(d1);
        c.add(Calendar.MINUTE, 5);
        Date d2 = c.getTime();
        System.out.println(d1 + " -> " + d2);
    }
    public static void main(String[] args) {
        first();
        second();
    }
}
Avatar billede arne_v Ekspert
17. september 2017 - 02:48 #5
re 1)

java.sql har 3 subklasser af java.util.Date:

java.sql.Date - date part only
java.sql.Time - time part only
java.sql.TimeStamp - both date and time
Avatar billede encorez Juniormester
18. september 2017 - 16:25 #6
Takker :)

Ang 1) Date inserted = rs.getTimeStamp("inserted");

"getTimeStamp" er rød og viser "Cannot resolve method getTimeStamp (java.lang.String)
Jeg har importeret både
import java.util.Date;
import java.util.*;
import java.sql.*;

Er der andet jeg skal importere for at få getTimeStamp til at virke?
Avatar billede arne_v Ekspert
18. september 2017 - 16:42 #7
Jeg huskede forkert.

Det er ikke:

getTimeStamp

men:

getTimestamp

(lille s ikke stort S)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester