Hogyan lehet a dátumot megkapni Java-ban? (Nem a konzolra akarom kiíratni)
Adott egy fgv, amiben ez a sor szerepel:
Date date = new Date();
Ezt a "date" változót átadja egy másik függvénynek.
A változót "áttenném" string-re, de hiába próbálkozok így:
String datum= String.format("%c", date );
Akkor:
Exception in thread "AWT-EventQueue-0" java.util.IllegalFormatConversionException: c != java.util.Date
String datum=( "%1$s %2$tB %2$td, %2$tY", date);
Így meg hibás
String datum=String.format( "%1$s %2$tB %2$td, %2$tY", date);
Akkor:
Exception in thread "AWT-EventQueue-0" java.util.MissingFormatArgumentException: Format specifier '2$tB'
String d=String.format( "%s %t %d, %Y", date);
Akkor:
Exception in thread "AWT-EventQueue-0" java.util.UnknownFormatConversionException: Conversion = 't'
Csak így jó:
String.format("Current Date/Time : %tc", date );
De mi van,ha nekem nem az "összes" kell, hanem csak a nap, vagy a hónap, vagy év-hónap-nap, vagy nap-óra?
A java.util.Date használata nem ajánlott, már régóta nem támogatott. Helyette használd a java.util.Calendar osztályt.
Ha mégis ragaszkodsz a Date osztályhoz, ajánlom a toString() metódust ami egy String típussal tér vissza a következő formátumban: "dow mon dd hh:mm:ss zzz yyyy
Egyébként most is elmondom, mint amit mindig, használjuk a Java dokumentációt. Minden, szó szerint minden le van írva.
Itt pedig a Calendar osztály leírása:
Köszi. :)
Ment a zöld kéz. :)
Előző vagyok, ha neked nem az összes kell, akkor tényleg a java.util.Calendar osztály a neked való.
Ennél tudod alkalmazni a következőt:
import java.util.Calendar;
public class CalendarFaq{
public static void main(String[] args){
Calendar date = Calendar.getInstance();
System.out.println("Év: " + date.get(Calendar.YEAR));
System.out.println("Hó: " + (1 + date.get(Calendar.MONTH)));
System.out.println("Nap: " + date.get(Calendar.DAY_OF_MONTH));
System.out.println("Óra: " + date.get(Calendar.HOUR_OF_DAY));
System.out.println("Perc: " + date.get(Calendar.MINUTE));
System.out.println("Másodperc: " + date.get(Calendar.SECOND));
}
}
Használd a DateFormat osztályt.
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String datum = df.format(date);
Mindegyik válasz helyes, de a SimpleDateFormat a nyerő, akkor is, ha Calendar-t használsz Date helyett (a félreértések elkerülése végett jelezném, hogy nem mindig helyes megoldás).
Date esetén szimplán
String result = df.format(myDate);
Calendar esetén pedig
String result = df.format(calendar.getTime());
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!