Article View: nl.comp.programmeren
Article #159Re: Datum conflict tussen 2 server
From: Sjoerd A. Schreuder
Date: Wed, 20 Apr 2005 13:52
Date: Wed, 20 Apr 2005 13:52
73 lines
4497 bytes
4497 bytes
Philip Paeps wrote: > In be.comp.programming Sjoerd A. Schreuder <sa_schreuder@wanadoo.nl> wrote: >>Johan Wevers wrote: >>>Passero <yanongena@pandora.be> wrote: >>> >>>>Een applicatie die we testen draait op een lokale server. >>> >>>Wat voor soort app? Ik kwam er laatst achter dat, in elk geval onder >>>win2000, een command-line app (CGI) zich niks aantrekt van de locale >>>settings. Het datum formaat heb ik dan ook maar hardcoded erin gezet >>>i.p.v. het automatisch te doen. >> >>Lijkt me een goed advies om datumconversies te hardcoden. > > Wat wil je precies gaan hardcoden? Hoe je een datum overstuurt. Of je dat als string, en in welk formaat, doet, of als seconden sinds X (time_t), of als een record met seconden/minuten/uren/etc (struct tm), of als.... Maar bovenal: indien als string, welk formaat. Want als je uitwisseling doet in een user-defined format, kun je er flink veel geld om verwedden dat er ergens een gebruiker is die die instellingen anders heeft staan. En dan werkt je programma niet meer. Moraal van het verhaal: leg het vast. Hoe je iets overstuurt is minder belangrijk dan dat beide kanten het op dezelfde manier doen. >>Als je een datum naar buiten je programma moet tonen, kan dat >>naar twee verschillende "gebruikers": >>* Menselijke gebruikers. Hiervoor zijn de lokale instellingen. > > > Als je je data print met ctime(3) worden die lokale instellingen ook netjes > gerespecteerd, zoals de gebruiker verwacht. Je kunt ook met strftime(3) > knoeien, dan negeer je je gebruiker zijn settings. In dat geval kan je > misschien een format ergens hardcoden, maar het lijkt verstandiger om de > gebruiker over zo'n dingen te laten beslissen... Helemaal mee eens. Daarom schreef ik ook "hiervoor zijn de lokale instellingen". >>* Andere programma's. Hiervoor specificeer je een uitwisselingsformaat. >> Deze specificatie is incompleet als er niet duidelijk is in welk >> formaat datums worden uitgewisseld. > > Meer dan struct tm en time_t heb je echt niet nodig hoor. Klopt. En in C heb je die. In diverse talen (VB/javascript/...) worden datums echter meestal als string geserialiseerd. En dan heb je de problemen waar we nu over spreken. Daarnaast zijn er een boel programmeurs die er niet eens bij nadenken. Jij en ik behoren daar duidelijk niet toe, maar ze bestaan wel. Die mensen moeten worden aangeleerd om er wel over na te denken. >>Aangezien het hier gaat om communicatie met een andere computer, had het >>uitwisselingsformaat moeten vastleggen hoe een datum gerepresenteerd wordt. > > Als je gewoon een time_t uitwisselt, kan je ze heel eenvoudig aan de twee > kanten van het protocol behandelen naar wens. Couldn't agree more. Maar ook in dat geval heb je het formaat vastgelegd. >>Het probleem ligt dus niet bij de lokale server of een andere server, maar >>ofwel bij de ontwerper die heeft verzuimd om vast te leggen hoe datums >>moeten worden getransporteerd, ofwel bij de programmeur die heeft aangenomen >>dat alle computers dezelfde instellingen als zijn eigen computer hebben. > > Daar ben ik het volkomen mee eens :-) :-) Sjoerd
Technical Details
Message-ID:
<42665ea0$0$93394$dbd4b001@news.wanadoo.nl>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!212.101.4.254.MISMATCH!solnet.ch!solnet.ch!news2.euro.net!nl-news.euro.net!beastiality.euro.net!postnews2.euro.net!news.wanadoo.nl!not-for-mailReferences:
<4264ec8a$0$146$e4fe514c@news.xs4all.nl> <IF7E3r.qs@vulcan.xs4all.nl> <426643fe$0$47854$dbd4f001@news.wanadoo.nl> <zIs9e.69585$3v6.4880424@phobos.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Thread: 107324,d9443f101ab8452c X-Google-Thread: fcea4,d9443f101ab8452c X-Google-Attributes: gid107324,gidfcea4,public X-Google-Language: DUTCH,ASCII-7-bit Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!212.101.4.254.MISMATCH!solnet.ch!solnet.ch!news2.euro.net!nl-news.euro.net!beastiality.euro.net!postnews2.euro.net!news.wanadoo.nl!not-for-mail Date: Wed, 20 Apr 2005 15:52:33 +0200 From: "Sjoerd A. Schreuder" <sa_schreuder@wanadoo.nl> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: nl.comp.programmeren,be.comp.programming Subject: Re: Datum conflict tussen 2 server References: <4264ec8a$0$146$e4fe514c@news.xs4all.nl> <IF7E3r.qs@vulcan.xs4all.nl> <426643fe$0$47854$dbd4f001@news.wanadoo.nl> <zIs9e.69585$3v6.4880424@phobos.telenet-ops.be> In-Reply-To: <zIs9e.69585$3v6.4880424@phobos.telenet-ops.be> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Lines: 74 Message-ID: <42665ea0$0$93394$dbd4b001@news.wanadoo.nl> Organization: Wanadoo NNTP-Posting-Date: 20 Apr 2005 13:52:33 GMT NNTP-Posting-Host: c3eea4102.cable.wanadoo.nl X-Trace: 1114005153 dr6.euro.net 93394 62.234.65.2:1677 X-Complaints-To: abuse@wanadoo.nl