» »

[java] datumi

[java] datumi

l0g1t3ch ::

Kako v javi dobit današnji datum ?
Rad bi da da miv eno labelo izpiše današnji datum pa nevem kak sploh dobim datum in kere razrede uporabit.

Pa se to kako se nek niz recmo 20.7.2006 pretvori v nek objekt ki predstavlja datum in kako to preverit pol kateri dan je (pon, tor, sre,...)

Sej bo šu googlat sam prvo tle prasam če kdo z glave ve :D

Fizikalko ::

import java.util.*;
import java.text.*;

public class NowString {
public static void main(String[] args) {
Date now = new Date();
DateFormat df = DateFormat.getDateInstance();
String s = df.format(now);
System.out.println("Today is " + s);
}
}

Fizikalko ::

Še malo formatiranja:

import java.util.*;
import java.text.*;

public class StyleDemo {
public static void main(String[] args) {
Date now = new Date();

DateFormat df = DateFormat.getDateInstance();
DateFormat df1 = DateFormat.getDateInstance(DateFormat.SHORT);
DateFormat df2 = DateFormat.getDateInstance(DateFormat.MEDIUM);
DateFormat df3 = DateFormat.getDateInstance(DateFormat.LONG);
DateFormat df4 = DateFormat.getDateInstance(DateFormat.FULL);
String s = df.format(now);
String s1 = df1.format(now);
String s2 = df2.format(now);
String s3 = df3.format(now);
String s4 = df4.format(now);

System.out.println("(Default) Today is " + s);
System.out.println("(SHORT) Today is " + s1);
System.out.println("(MEDIUM) Today is " + s2);
System.out.println("(LONG) Today is " + s3);
System.out.println("(FULL) Today is " + s4);
}
}

In dobiš:

(Default) Today is Jul 26, 2006
(SHORT) Today is 26/7/2006
(MEDIUM) Today is Jul 26, 2006
(LONG) Today is July 26, 2006
(FULL) Today is Wednesday, July 26, 2006

Zgodovina sprememb…

  • spremenilo: Fizikalko ()

l0g1t3ch ::

u hvala za hiter odgovor
Sicer sm jest že gledu class date sam me je mal zmotl d je vse skor deprecated

Kaj pa drugi del kak nek string pretvort v objerkt tipa Date in pol pogledat kateri dan je to ?

Fizikalko ::

Za deprecated ne skrbi preveč, važno, da dela...

valueOf metoda:

public static Date valueOf(String s)

Converts a string in JDBC date escape format to a Date value.

Parameters:
s - a String object representing a date in in the format "yyyy-mm-dd"
Returns:
a java.sql.Date object representing the given date
Throws:
IllegalArgumentException - if the date given is not in the JDBC date escape format (yyyy-mm-dd)

Fizikalko ::

blaz_ ::

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html

static long currentTimeMillis()
Returns the current time in milliseconds.

LP
Blaž
Ko tehnologija odpove, uporabi macolo.

l0g1t3ch ::

Neki me se zanima kako nardit da bo delovalo primerjanje datumov.
tkole dobim danasniji datum
danes = new Date();

tole pa kot rok izdelave vnese uporabnik
String niz3 = polje3.getText();
DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM);
rok_izdelave = format.parse(niz3);

pol pa preverjam
if(danes.equals(rok_izdelave))

in seveda nikol ni true, kar je pomoje nekak logicen, ker objekt danes hrani vec podatkov o datumu kot pa to kar uporabnik vnese. A je najbolš d datume z metodo toString() spremenim v niz in primerjam al bi lohka objekt danes nekak spremenu v obliko da hrani isto kot rok_izdelave

p.s. A za pravilnost vnosov rabiš sam skrbet al ma to že java kej. da ti vrže izjemo če naprimer vnesen 33.7.2006 oz kak tak nesmisel

Zgodovina sprememb…

  • spremenil: l0g1t3ch ()

Fizikalko ::

Pretvori v Stringe istih formatov in primerjaj.

Napake boš moral sam pohendlat, ker ti bo vrglo Exception pri obdelavi napačnih datumov.

l0g1t3ch ::

sej zadevo mam v try catch bloku in tud lovim ParseException ampak toj sam napak če uporabnik namest 30.7.2006 napiše kar neko neumnost ala 321432 sepravi ni pravilen format

Jest sm pa mislu to, da uporabnik vpiše pravilen format dd:mm:yyyy ampak da za dan ali mesec tako stevilo, ki ne more bit. Recimo 33ti dan al pa 15 mesec

recimo če bi vnesu 33.15.2006 da se sprož kakia zjema, ker zdej to Java mirno požre in sicer sparsa v 2.4.2007

Fizikalko ::

Čist simpl. Naredi preverjanje vnosa z if stavkom - primerjaj Date objekt (v milisekundah) vnešenega in tekočega datuma.

l0g1t3ch ::

Ne zastopm točn kaj is mislu ?
Men sam to še zanima če ma Java kak mehanizm da avtomatsko čekira smiselnost datuma.

recimo če en kot rok izdelave vnsese 15.8.2006 je to ok, če pa da 8.15.2006 bi pa mogl vn vrzt nepraviloen vnos, skratka sprozit eno izjemo ker pač 15ga meseca NI. Ampak java sedaj to neumnost mirno požre.

Al bom mogu ročno preverjat da srednja številka ni več ko 12 in potem še za datum glede na mesec da ni več kot 30, 31 ali v februarju 28

Fizikalko ::

NE! Čekiraj oba datuma, pretvorjena v milisekunde (objekt Date). Dej si malo dokumentacijo poglej, no.

l0g1t3ch ::

Ma sej primerjavo datumu sm rešu mene čist drugu zanima sam zgleda ne pridema skupi kaj mene zanima

bom že poisku sam kej

kopernik ::

Uporabi razred SimpleDateFormat, ki je temu namenjen.
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
//tukaj poves, da naj striktno preverja pravilnost
format.setLenient(false); 
try
{
  Date date = format.parse("33.02.2006"); //napacen datum
  System.out.println(date);
}
catch (ParseException e)
{
  e.printStackTrace();
}


Torej, tisti setLenient() je pomemben, saj v nasprotnem primeru vzame datum '33.02.2006' kot pravilen, s tem da prišteje višek dni in da kot rezultat '05.03.2006'.

l0g1t3ch ::

hvala Kopernik točn tole sm rabu format.setLenient(false); sam sploh nism vedu pod kaj bi iskav


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java - dva problema

Oddelek: Programiranje
141195 (803) nightrage
»

[Java] Evidenca delovnega časa - Java v navezi z Accessom

Oddelek: Programiranje
392366 (1586) c0dehunter
»

[JAVA] zaustavitev niti (threadov)

Oddelek: Programiranje
222052 (2052) morbo
»

[Naloga][Java] Ulomki

Oddelek: Programiranje
61734 (1582) SkIDiver
»

[NALOGA][Java] Težave pri pisanju slikarja

Oddelek: Programiranje
201678 (1320) l0g1t3ch

Več podobnih tem