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?
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.
Kijk om te parsen eens naar SimpleDateFormat.
Daarna kun je met Calendar een en ander gemakkelijk uitlezen.
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.. ]
Tot nu toe heb ik zoiets: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.
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?
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?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?
Heb je nog niks geprobeerd? Ga dat dan toch eens doen
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.maar hoe moet ik dan die calender methode gebruiken?
[ 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
Zover ik weet kun je dit toch ook gewoon met een sql functie doen?..
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();
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
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
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 ]
Met SimpleDateFormat kun je bijvoorbeeld dit:
Of met gewone String methodes:
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 slagNeverwinterx 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]);
Pagina: 1