[C#] DateTime.Now systeem afhankelijk?

Pagina: 1
Acties:

  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Ik ben een webbased applicatie aan het schrijven. Voor de dataopslag maak ik gebruik van een SQL Server 2000 database. Ik ontwikkel op een Windows XP prof machine (Engels) en test het een en ander op een Windows 2000 Server machine (Nederlands). Nou heb ik een probleem met het opvragen van de huidige datum en tijd dmv DateTime.Now.

Als ik dit op mijn engelstalige machine doe krijg ik: 12/29/2002 17:30:00. Dit kan ik mooi in een SQL datetime veld opslaan. Nu probeer ik dezelfde applicatie te starten op m'n nederlandstalige machine. Na veel debuggen ben ik erachter dat het DateTime.Now op deze machine iets heel anders terug geeft namelijk:
29-12-2002 17:30:00

Kan ik het type van de DateTime variabele zo aanpassen dat het altijd gebruik maakt van de Amerikaanse datum en tijd indeling??

Verwijderd

Ja

code:
1
string blah = System.DateTime.Now.ToString("yyyy-mm-dd HH:mm");

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:26

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
maar als je de huidige tijd in een sql-veld wilt opslaan kan je dat beter met sql doen, check de manual van de server die je gebruikt voor hoe..

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Als je het opslaat in een DateTime field in sqlserver (recommended!) ben je beter bezig, wat brammetje ookal aangeeft. Je kunt in de web.config een globalisation attribuut opgeven en daarin de culture specificeren voor de complete website (dan heb je dus ook automatisch floating point nummers goed met een punt ipv een comma etc).

voorbeeld:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="nl-NL" />

Deze zorgt voor een nederlandse site, met eurotekens automatisch voor bedragen, etc. Plaats deze tag binnen de system.web tag

Ook is het verstandig bij coversies van datums gebruik te maken van een culture. Je kunt die culture opgeven bij DateTime.Now.ToString(). Dat is beter dan hardcoded een datumstring erin opnemen. Zie help van de ToString() overloads van DateTime voor details.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com