Avatar billede hektor_troy Nybegynder
09. juli 2001 - 18:40 Der er 12 kommentarer

Date.toString() -> new Date( String ) != virker

Håber i kan gennemskue den kryptiske titel.

Problemet er som følger:
Jeg har lavet en log-fil med dato og tid beskrevet som Date.toString():
Sun Jul 08 20:22:54 CEST 2001

Nu viser det sig så, at jeg skal bruge UTC istedet (altså millisekunder efter 1. januar 1970), men jeg kan ikke få lortet parset, uden manuelt at skulle gøre det, altså hente yyyy:mm:dd:hh:mm:ss ud af tekststrengen og herpe det ud i
Date(int year, int month, int date, int hrs, int min, int sec) (jeg ved godt, at den er depricated, men den skal kun lige bruges et kort øjeblik).

Nogen ideer til hvordan jeg løser problemet?
Avatar billede lbhansen Nybegynder
09. juli 2001 - 19:40 #1
skal du konvertere din eksisterende streng til en ny date, eller skal du udskrive din streng i sidst angivne format?
Avatar billede hektor_troy Nybegynder
09. juli 2001 - 19:41 #2
Et nyt Date-objekt er klart at foretrække :-)
Avatar billede lbhansen Nybegynder
09. juli 2001 - 19:44 #3
Hvis du logger, og bruger currentTime, så kan du bruge getTime() til at få antal millisec. eller skal du oprette det på en anden måde?
Avatar billede hektor_troy Nybegynder
09. juli 2001 - 19:49 #4
Jeg HAR logget tiderne, bare i et forkert datoformat. I øjeblikket logger jeg i det korrekte datoformat, men de 3000+ logs jeg har med det forkerte datoformat er et \"problem\", for jeg giiider ikke lave arbejdet selv,
Avatar billede lbhansen Nybegynder
09. juli 2001 - 19:57 #5
Du kan oprette et java.text.SimpleDateFormat med de rigtige parametre, og så lave parse, få en ny Date, og skrive denne ud med getTime()
Avatar billede hektor_troy Nybegynder
09. juli 2001 - 20:01 #6
SimpleDateFormat vil ikke tage
Sun Jul 08 20:22:54 CEST 2001
som parameter ... fra dokumentationen til SimpleDateFormat:
SimpleDateFormat formatter = new SimpleDateFormat (\"yyyy.MM.dd G \'at\' hh:mm:ss a zzz\");

Avatar billede lbhansen Nybegynder
09. juli 2001 - 20:03 #7
du skal heller ikke bruge \'.\' til at adskille med. Du skal bruge mellem rum. Desuden ser din streng jo heller ikke sådan ud, hvis du bruger Sun Jul 08 20:22:54 CEST 2001 som et eksempel
Avatar billede hektor_troy Nybegynder
09. juli 2001 - 20:08 #8
ifølge dokumentationen skal jeg bruge \'.\', så det går jeg ud fra passer. Men det er ikke specielt relevant, da det angivne format ikke passer med det format jeg starter med. Hvis du kan vise mig hvordan jeg får tekststrengen \"Sun Jul 08 20:22:54 CEST 2001\" parset med SimpleDateFormat, så får point, men umiddelbart kan svaret ikke bruges til noget.
Avatar billede lbhansen Nybegynder
09. juli 2001 - 20:13 #9
EEE MMM dd HH:mm:ss zzzz yyyy
Avatar billede hektor_troy Nybegynder
09. juli 2001 - 20:16 #10
h=gig ... forklaring udbedes tak
Avatar billede lbhansen Nybegynder
09. juli 2001 - 20:27 #11
jeg prøvede, men så er det vel bare og fedte sig frem til løsningen. Nu ved du hvordan:)
Avatar billede hektor_troy Nybegynder
09. juli 2001 - 20:33 #12
så er det nemmere at fedte sig frem til at bruge DateFormat.getInstance.parse( ... )

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester