Hvordan lage en dato fra en streng i Java

Hvordan lage en dato fra en streng i Java


Den enkleste måten å opprette en dato fra en streng i Java er å la Sun Micro gjøre jobben for deg. Ved hjelp av to klasser som er en del av Java \ "util \" og \ "tekst \" APIer som allerede er installert på systemet med Java Development Kit, kan du automatisere konvertering mellom strenger og datoer med bare noen få linjer med kode .

Bruksanvisning

1 Opprett en ny Java-klassen fil kalt \ "StringToDate.java \" ved hjelp av teksteditor eller Java utviklingsmiljø av ditt valg.

2 Legg til følgende kode i toppen av klassen filen:

import java.util.Date

import java.text.ParseException

import java.text.DateFormat

Dette er de klassene vi trenger å bruke fra Java API hele vårt program.

3 Legg til følgende under import uttalelser.

/ **

Denne klassen konverterer strenger til datoer. @ Forfatter Kevin Walker
* /
public class StringToDate {

}

All kode vil gå mellom de åpne og lukke parentes i denne klassen.

4 Lag en lese metode innen klassen:

/**
* Read the string and return it as a Date.
* @param d the string to parse
* @return the date.
*/
public static Date read(String s) throws ParseException {
DateFormat df = DateFormat.getDateInstance(DateFormat.Long, Locale.US)

Date d = df.parse(s)

return d

}

Dette bruker analysere metoden i dateformat klassen å tolke String inn en dato, og dermed gjør alt det harde arbeidet for deg. Den Locale innstillingen er spesielt viktig, ettersom den forteller Java hvilken stil du kan forvente datoene å være i. Den amerikanske locale vil forvente datoene å være i en måned-dag-år-format, mens andre steder kan forvente et format som dag- måned-år eller år-måned-dag.

5 Lag en viktig metode for å teste den.

/**
* A sample application using the DateReader class.
* @param args This application doesn't receive command line arguments.
*/
public static void main(String[] args) {
String s = \"\"


try {

String s = \"10/23/1997\"

Date d = read(s)

System.out.println(\"You entered the date: \" + d.toString())

} catch (ParseException e) {
System.out.println(s + \" cannot be parsed as a date.\")

}
}

Dette feeds bare lesefunksjonen en streng for datoen for den 23 oktober 1997, og ber om Date klassen å gi oss tilbake en strengrepresentasjon av denne datoen. Ved en feil, vil \ "ParseException \" bli fanget og programmet vil informere brukeren om at datoen var ugyldig.

Hint

  • DateFormat.parse er en kraftig metode som kan forstå de fleste former for skriving datoer, men det er ikke idiotsikker. Det kan potensielt bli forvirret, spesielt når du leser dato stiler som ikke samsvarer med den angitte Locale.