[VB.net] Datetime uitlezen uit .txt file in juiste format.

Pagina: 1
Acties:

  • josteman
  • Registratie: Mei 2002
  • Laatst online: 21-12-2022
Hallo,

Ik ben met een programmatje bezig dat XML berichten uitwisselt via FTP. In dit XML bestand staat ook de starttijd (van bepaald event). Echter de berichten worden aangeleverd op de volgende manier:

<StartTime>2006-09-014T09:00:00.000</StartTime>

oftewel: yyyy-MM-ddThh:mm:ss

Echter de machine die de berichten inleest staat ingesteld op Dutch regional settings (dit mag niet aangepast worden).

Er is nu aan de XML file toegevoegd hoe de datatimeformat wordt doorgegeven. Maar hoe kan ik dit nu ook zo inlezen?

Ik maak nu gebruik van substring om het jaar, maand, dag enz. eruit te filteren. Maar dat gaat weer fout als er een bericht verstuurd wordt met NL settings. (dag-maand) . Ik kan natuurlijk een andere inlees functie voor NL gebruiken, maar dit wil ik niet.

Op internet kan ik alleen vinden hoe ik het moet presenteren format(). Maar niet hoe ik het moet inlezen.

Bijvoorbeeld:

Dim dStartTime As DateTime
dStartTime = "2006-09-10T16:00:00.000"

Moet zijn 10 september en niet 9 oktober. En het moet niet uitmaken op welk systeem het ingelezen wordt.

Groeten,
Josteman

Boei


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
[Google=Culture settings .net]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
Allereerst: Een XML file is geen TXT file.

Kijk eens of je niets kan doen met XmlConvert.ToDateTime(string);

(Bij het exporteren naar XML kan je ook gebruik hiervan maken, maar dan van XmlConvert.ToString (DateTime). Op die manier wordt je datum altijd op een uniforme, standaard manier naar je XML weggeschreven.

https://fgheysels.github.io/


  • josteman
  • Registratie: Mei 2002
  • Laatst online: 21-12-2022
De berichten worden aangeleverd via een ander programma (kan ik (bijna) niet manipuleren). Ik weet niet zeker of de applicatie de data ook weleens anders aanbied (systeem komt om meerdere pc's) en ik wou dit afvangen met mijn applicatie.
xmlconvert is niet echt de oplossing.

Boei


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
Tja, XmlConvert is de enige juiste oplossing in dit geval.
Als de datum in de xml file staat zoals jij post in je topicstart, dan kan je er vrijwel van uitgaan dat ze op de enige juiste manier in je xml staan. Indien je zelf de xml zou genereren, en je schrijft de datum weg mbhv XmlConvert.ToString (theDatum), dan zouden ze er ook op die manier inkomen.

XmlConvert is de enige oplossing, tenzij je gebruik maakt van die 'structuur-informatie' die ook in je xml file staat en die zegt hoe de datum aangeleverd wordt. Dan moet je een FormatProvider oid gebruiken in je Convert.ToDateTime method, maar dan ben je imho in dit geval moeilijk bezig.
Gewoon XmlConvert gebruiken.

https://fgheysels.github.io/