Avatar billede tdaugaard Nybegynder
07. juni 2001 - 05:23 Der er 6 kommentarer og
1 løsning

Formatere/parse et underligt dato/tid\'s format..

Jeg har et dato/tid format der ser sådan her ud:

Tue, 5 Jun 2001 22:58:31 +0200

men det kan VBScript\'s FormatDateTime() ikke finde ud af :-(

Hvordan gør jeg ? Der kan også stå:

Tue, 5 Jun 2001 22:58:31 EST

såee ..
Avatar billede jkjaers Nybegynder
07. juni 2001 - 09:21 #1
Hvordan vil du have det til at se ud?
Avatar billede tdaugaard Nybegynder
07. juni 2001 - 10:22 #2
YYYY-MM-DD HH:MM:SS eller DD-MM-YYYY HH:MM:SS ...
Avatar billede mwittrock Nybegynder
07. juni 2001 - 14:21 #3
Her er et script du kan køre fra kommandolinjen (med Windows Script Host), der viser hvordan du kan trække de forskellige komponenter ud af strengen, så må du selv sætte det nye format sammen bagefter :-)

Option Explicit

Dim objRegExp, strDato, objMatch

If WScript.Arguments.Count <> 1 Then
  WScript.Echo(\"Anvendelse: cscript DatoFormat.vbs dato\")
  WScript.Quit(1)
End If

strDato = WScript.Arguments(0)

Set objRegExp = New RegExp

With objRegExp
  .Pattern = \"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s+(\\d{1,2})\\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|No|Dec)\\s+(\\d+)\\s+(\\d\\d:\\d\\d:\\d\\d)\\s+(.+)$\"
  .IgnoreCase = True
End With

If Not objRegExp.Test(strDato) Then
  WScript.Echo(\"Datoen matcher ikke formatet.\")
Else
  Set objMatch = objRegExp.Execute(strDato)(0)
  WScript.Echo(\"Dag: \" & objMatch.SubMatches(0))
  WScript.Echo(\"Dato: \" & objMatch.SubMatches(1))
  WScript.Echo(\"Måned: \" & objMatch.SubMatches(2))
  WScript.Echo(\"Årstal: \" & objMatch.SubMatches(3))
  WScript.Echo(\"Klokkeslæt: \" & objMatch.SubMatches(4))
  WScript.Echo(\"Tidszone: \" & objMatch.SubMatches(5))
End If
Avatar billede tdaugaard Nybegynder
07. juni 2001 - 14:25 #4
Jeg skal også bruge det så den selv regner tiden ud efter den angivne tidszone ...
Avatar billede mwittrock Nybegynder
07. juni 2001 - 14:52 #5
1) Tidszoner er ikke nemme at håndtere!
2) Du skal nok læse dig til lidt mere viden om formatet, men +0200 betyder formodentlig GMT +2.

Klokken 14:00 i tidszonen GMT +2 er klokken 12:00 i GMT, og derfor klokken 13:00 i GMT +1 som Danmark tilhører. EST er lig GMT -5.

God fornøjelse ;-)

Avatar billede mwittrock Nybegynder
07. juni 2001 - 15:29 #6
Kig evt. her:

http://www.timezoneconverter.com/

Husk iøvrigt den lille detalje der hedder sommertid :-)

13:28:26 Thu Jun 07 2001 in GMTconverts to
15:28:26 Thu Jun 07 2001 in Europe/Copenhagen
DST* is not in effect on this date/time in GMT
DST* is in effect on this date/time in Europe/Copenhagen
Avatar billede tdaugaard Nybegynder
14. juni 2001 - 13:40 #7
hmm .. tak ..
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