sql >> Database teknologi >  >> RDS >> Mysql

EEE MMM dd TT:mm:ss ZZZ åååå datoformat til java.sql.Date

LocalDate date4 = ZonedDateTime .parse(date, DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH)) .toLocalDate(); java.sql.Date date5 = java.sql.Date.valueOf(date4);

Jeg bruger de moderne klasser i java.time pakke. Du bemærker, at koden ikke kun er enklere, når du først har stiftet bekendtskab med de nyere klassers flydende skrivestil, er den også tydeligere.

Hvis du ville være 100 % moderne, bør du også tjekke, om din seneste MySQL JDBC-driver ikke ville acceptere en LocalDate direkte uden konvertering til java.sql.Date . Det burde.

Et par detaljer at bemærke

  • Hvis du har brug for din kode til at køre på computere uden for din kontrol, skal du altid give din formatering en lokalitet, ellers kan din datostreng ikke parses på en computer med en ikke-engelsktalende lokalitet. Du kan bruge Locale.ROOT for en lokalitetsneutral lokalitet (den taler engelsk).
  • Hvis du kan, så undgå de tre bogstaver tidszoneforkortelser. Mange er tvetydige. EET er egentlig kun en halv tidszone, da nogle steder, hvor det bruges, er på EEST (sommertid) nu. Bedre at bruge enten et langt tidszone-id som Europe/Bucharest eller en offset fra UTC som +02:00 .

Disse punkter er gyldige, uanset om du bruger DateTimeFormatter eller SimpleDateFormat .

Hvis du ikke kan eller ønsker at gå videre til de anbefalede nyere klasser, er rettelsen til din kode:

SimpleDateFormat formatnow = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); SimpleDateFormat formatneeded = new SimpleDateFormat("yyyy-MM-dd");

Jeg bruger små bogstaver zzz da dette er dokumenteret at matche et tidszonenavn på tre bogstaver, kender jeg den store ZZZ virker også. Jeg har tilføjet lokalitet. Og måske vigtigst af alt, i det nødvendige format har jeg ændret YYYY (ugebaseret år) til yyyy (kalenderår) og DD (dag på året) til dd (dag i måneden). Alle disse bogstaver er i dokumentationen .



  1. SQL NØGLER

  2. kommasepareret streng af udvalgte værdier i mysql

  3. Trigger vs. kontrolbegrænsning

  4. Hvordan indsætter man en post med kun standardværdier?