VB.NET datetime

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 454047

Topicstarter
Goedemorgen, na al 2 uur verbrand te hebben aan het op een juiste manier formatten van een string naar datetime heb ik besloten om even een topic te openen.

Ik heb een datum i.e. 30-12-2014 die moet worden geformat naar een datetime in VB i.e. #30-12-2014 12:00:00 AM#

De code die ik hiervoor geschreven hebt:

Visual Basic:
1
2
Expirydate = Expirydate.Replace("-", "") + "000001"
Dim convertDate As DateTime = DateTime.ParseExact(Expirydate, "ddMMyyyyHHmmss", New CultureInfo("nl-NL"))


convertDate bevat nu de waarde #12/30/2014 12:00:01 AM#

Mijn vraag is hoe switch ik de dag met de maand.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Representatie != opslag!
Je haalt hier twee zaken nogal door elkaar; je parsed een datum volgens een exact formaat in een DateTime. Vervolgens ga je die datetime weergeven; dat kun je overlaten aan je presentatielaag en culture settings en anders kun je met de verschillende .ToString overrides het specieke formaat aangeven dat je wil hebben.

Ik weet niet waar het nu mis gaat met de maand/dag, maar als het in 't parsen zit dan switch je gewoon ddMM naar MMdd; gaat 't fout bij 't weergeven dan gebruik/specificeer je de verkeerde culture of custom datetime format string.

Al met al: dit is allemaal prima gedocumenteerd en met even F1 rammen op de juiste methods in VS (of de links klikken in deze post) moet je daar prima zelf uit kunnen komen.

[ Voor 32% gewijzigd door RobIII op 07-11-2012 11:53 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • HeSitated
  • Registratie: April 2009
  • Laatst online: 03-12-2024
Anoniem: 454047 schreef op woensdag 07 november 2012 @ 11:45:
Goedemorgen, na al 2 uur verbrand te hebben aan het op een juiste manier formatten van een string naar datetime heb ik besloten om even een topic te openen.
Fout nr 1: Volgende keer eerst je grote vriend raadplegen!

Ik heb een datum i.e. 30-12-2014 die moet worden geformat naar een datetime in VB i.e. #30-12-2014 12:00:00 AM#
Anoniem: 454047 schreef op woensdag 07 november 2012 @ 11:45:
Visual Basic:
1
2
Expirydate = Expirydate.Replace("-", "") + "000001"
Dim convertDate As DateTime = DateTime.ParseExact(Expirydate, "ddMMyyyyHHmmss", New CultureInfo("nl-NL"))
Fout nr 2:
Visual Basic:
1
2
3
Dim Expirydate = "30-12-2014"
Dim convertDate As DateTime = DateTime.ParseExact(Expirydate, "dd-MM-yyyy", New System.Globalization.CultureInfo("nl-NL"))
convertDate.ToString("MM-dd-yyyy").Dump()

Dus de replace heb je helemaal niet nodig.
Mijn vraag is hoe switch ik de dag met de maand.
Fout nr 3: Hoewel niet verteld probeer je een query in elkaar te flansen die records filtert op basis van een datum, maar omdat je rdbms de amerikaanse datumnotatie gebruikt, wil je dus die conversie gebruiken.

Oplossing gebruik parameters en geef gewoon een datum als parameter mee....

offtopic:
En nu maar hopen dat het niet mijn fout is, dat ik te veel veronderstel..... :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
HeSitated schreef op woensdag 07 november 2012 @ 12:02:
Fout nr 3: Hoewel niet verteld probeer je een query in elkaar te flansen die records filtert op basis van een datum
Dat verwacht ik ook, gezien de (waarschijnlijk) "Access notatie" i.v.m. "#datum#'.
HeSitated schreef op woensdag 07 november 2012 @ 12:02:
Oplossing gebruik parameters en geef gewoon een datum als parameter mee....
En als je geen parameterized queries kunt gebruiken, gebruik dan ISO8601 notatie (hoewel ik meen dat er een "gotcha" was; er moesten juist wél of juist géén streepjes tussen of zoiets dergelijks; het gaat om 't principe YYYY voor MM voor DD).

[ Voor 15% gewijzigd door RobIII op 07-11-2012 12:15 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij