Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

dateTime splitsen in java

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik haal uit een database een String met de datum en tijd van het volgende formaat '2008-01-01 00:00:00'. Nu wil ik in java alle waardes van het jaar, de maand etc. als losse strings hebben. Hoe kan ik dat het beste doen?

  • LAN
  • Registratie: Oktober 2000
  • Niet online

LAN

Staat die datum al niet als datum type in de database?

Kijk om te parsen eens naar SimpleDateFormat.
Daarna kun je met Calendar een en ander gemakkelijk uitlezen.

  • Webgnome
  • Registratie: Maart 2001
  • Nu online
Ik zou zeggen pak de String javadoc er eens bij en zie dat daar een split functie staat. Als je zeker weet dat de lengte van de String (het aantal karakters) niet veranderd dan zou je zelfs substring kunnen gebruiken.

[ Voor 0% gewijzigd door Webgnome op 08-05-2008 18:52 . Reden: of wat LAN zegt.. ]

Strava | AP | IP | AW


Verwijderd

Topicstarter
LAN schreef op donderdag 08 mei 2008 @ 18:52:
Staat die datum al niet als datum type in de database?

Kijk om te parsen eens naar SimpleDateFormat.
Daarna kun je met Calendar een en ander gemakkelijk uitlezen.
Tot nu toe heb ik zoiets:

code:
1
2
3
4
5
6
7
        String eventDate = eventInfo.getDate();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try{
        sdf.parse(eventDate);
        }catch(ParseException e){
        System.out.println("Failed to convert dateTime");
        }


maar hoe moet ik dan die calender methode gebruiken?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 07:40

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op donderdag 08 mei 2008 @ 18:49:
Ik haal uit een database een String met de datum en tijd van het volgende formaat '2008-01-01 00:00:00'. Nu wil ik in java alle waardes van het jaar, de maand etc. als losse strings hebben. Hoe kan ik dat het beste doen?
Zelf eerst aan de slag gaan natuurlijk! Dus wat heb je al geprobeerd? Wat lukte daar niet mee? Kreeg je foutmeldingen? Zo ja welke? Kreeg je een resultaat dat je niet verwachte? Wat was dat dan?

Heb je nog niks geprobeerd? Ga dat dan toch eens doen ;) Hier in PRG gaan we er vanuit dat je in eerste instantie zelf aangeeft wat je hebt geprobeerd en dat je dat ook laat terugzien in je topcicstart. Zou je Programming Beleid en dan met name Programming Beleid - De Quickstart eens door willen lezen?
maar hoe moet ik dan die calender methode gebruiken?
Het is nu niet dat er geen documentatie over de Calender class is, of over de Date class. Er zijn standaard mogelijkheden om het jaar, maand etc. los op te vragen. Pak aub de documentatie er ff bij want daar staat het prima in uitgelegd.

[ Voor 14% gewijzigd door Creepy op 08-05-2008 19:09 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 12-11 13:44
Zover ik weet kun je dit toch ook gewoon met een sql functie doen?..

Verwijderd

Topicstarter
ik heb een beetje rondgekenken op het internet. ik weet nu hoe ik die waardes los kan krijgen. Allen ik snap niet hoe je een calendar kan aanmaken met je eigen tijd en datum. Alleen met de huidige tijd en datum:

Calendar rightNow = Calendar.getInstance();

Verwijderd

GregorianCalandar wellicht.

De javadocs zijn handig, boeken zijn ook handig, maar vergeet ook niet de Java Tutorials
Even zoeken op Calendar en een paar hits zagen er zo gezien de beschrijving veel belovend uit.

Maar ook met de JavaDoc zie je dat Calendar een abstracte klasse is en dat GregorianCalendar een direct known subclass is ;) Als je daar dan naar toe door klikt zie je dat die niet abstract is en dat je daar dus wel een instantie van kunt aanmaken.

en hoe je van Strings naar Integers gaat vind je in de standaard java.lang-package bij de klassen String of Integer wel ergens terug

[ Voor 43% gewijzigd door Verwijderd op 08-05-2008 20:34 ]


  • Neverwinterx
  • Registratie: December 2005
  • Laatst online: 07-10 11:34
Met SimpleDateFormat kun je bijvoorbeeld dit:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        String eventDate = "2008-01-01 11:12:13";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Calendar dateTime = Calendar.getInstance();
            dateTime.setTime(sdf.parse(eventDate));
            // Lees jaar, maand etc uit met de methode uit calendar.
            int month = dateTime.get(Calendar.MONTH);
            // Als je ze per se als string wilt:
            String monthString = Integer.toString(month);
            // Hou er rekening mee dat de maand blijkbaar vanaf 0 geteld wordt.
            // Januari is dus 0.
            System.out.println("Month: " + monthString);
            int hour = dateTime.get(Calendar.HOUR_OF_DAY);
            String hourString = Integer.toString(hour);
            System.out.println("Hour: " + hourString);

        } catch (ParseException e) {
            // Panic
        }



Of met gewone String methodes:
Java:
1
2
3
4
5
6
7
8
9
10
        String eventDate = "2008-01-01 11:12:13";
        String[] twoParts = eventDate.split(" ");
        String[] dateParts = twoParts[0].split("-");
        String[] timeParts = twoParts[1].split(":");
        System.out.println("Year: " + dateParts[0]);
        System.out.println("Month: " + dateParts[1]);
        System.out.println("Day: " + dateParts[2]);
        System.out.println("Hour: " + timeParts[0]);
        System.out.println("Min: " + timeParts[1]);
        System.out.println("Sec: " + timeParts[2]);

Verwijderd

Topicstarter
Neverwinterx schreef op donderdag 08 mei 2008 @ 21:05:
Met SimpleDateFormat kun je bijvoorbeeld dit:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        String eventDate = "2008-01-01 11:12:13";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Calendar dateTime = Calendar.getInstance();
            dateTime.setTime(sdf.parse(eventDate));
            // Lees jaar, maand etc uit met de methode uit calendar.
            int month = dateTime.get(Calendar.MONTH);
            // Als je ze per se als string wilt:
            String monthString = Integer.toString(month);
            // Hou er rekening mee dat de maand blijkbaar vanaf 0 geteld wordt.
            // Januari is dus 0.
            System.out.println("Month: " + monthString);
            int hour = dateTime.get(Calendar.HOUR_OF_DAY);
            String hourString = Integer.toString(hour);
            System.out.println("Hour: " + hourString);

        } catch (ParseException e) {
            // Panic
        }



Of met gewone String methodes:
Java:
1
2
3
4
5
6
7
8
9
10
        String eventDate = "2008-01-01 11:12:13";
        String[] twoParts = eventDate.split(" ");
        String[] dateParts = twoParts[0].split("-");
        String[] timeParts = twoParts[1].split(":");
        System.out.println("Year: " + dateParts[0]);
        System.out.println("Month: " + dateParts[1]);
        System.out.println("Day: " + dateParts[2]);
        System.out.println("Hour: " + timeParts[0]);
        System.out.println("Min: " + timeParts[1]);
        System.out.println("Sec: " + timeParts[2]);
Hey, Tnx man, ik ga er mee aan de slag
Pagina: 1