[C#] FormatException Convert.ToDateTime()

Pagina: 1
Acties:

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 15:01
Ik krijg sinds gisteren format exceptions in een Convert.ToDateTime() aanroep out of the blue.
Alleen op mijn lokale machine. Op de testomgeving is het probleem niet aanwezig. Heb mijn lokale code naar test gereleased en probleem blijft weg.

- culturecode is correct
- input is correct
- het werkt wel op de testomgeving en lokale machine van een collega

Heb een nieuwe webapplication gemaakt en daar de bewuste code in gezet, maar zelfde error.

De code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;

namespace RommelProjectje
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        string cultureCode = "nl-NL";
        private System.Globalization.CultureInfo cultureInfo;

        protected void Page_Load(object sender, EventArgs e)
        {
            cultureInfo = System.Globalization.CultureInfo.CreateSpecificCulture(cultureCode);
            DateTime dt = Convert.ToDateTime("woensdag 27-02-2013", cultureInfo);
            //DateTime dt = Convert.ToDateTime("27-02-2013", cultureInfo);
            string bla = dt.ToString();
        }
    }
}


Bij beide converts gaat het fout. De tekenreeks is niet als geldige DateTime herkend.

Het treedt dus alleen op mijn lokale omgeving op. Machine herstart, maar geen effect.
Laatst wel R# voor VS2010 geinstalleerd, maar het probleem treed ook op in Studio 2008 waar ik R# niet voor heb.

Ik zie het even niet meer ;(

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 15:56

Sebazzz

3dp

Weet je of de datum een vast formaat is? Zo ja, gebruik DateTime.ParseExact.

Je kan overigens ook DateTime.Parse gebruiken, al verwacht ik niet dat het gedrag daarvan verschilt.

Wellicht is dit ook interessant:
The user might choose to override some of the values associated with the current culture of Windows through the regional and language options portion of Control Panel. For example, the user might choose to display the date in a different format or to use a currency other than the default for the culture. If the culture identifier associated with name matches the culture identifier of the current Windows culture, this constructor creates a CultureInfo object that uses those overrides, including user settings for the properties of the DateTimeFormatInfo instance returned by the DateTimeFormat property, and the properties of the NumberFormatInfo instance returned by the NumberFormat property. If the user settings are incompatible with the culture associated with the CultureInfo, for example, if the selected calendar is not one of the OptionalCalendars, the results of the methods and the values of the properties are undefined.
Wellicht heb je andere datuminstellingen. Probeer sowieso de overload met de bool parameter.

[ Voor 75% gewijzigd door Sebazzz op 28-02-2013 09:56 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 18:27
Als je je lokale datum-instellingen (voor nl-NL) wijzigt, dan krijg je ook een andere CultureInfo en dus ook ander gedrag bij Convert.ToDateTime.

edit: wat hierboven dus ook staat...

[ Voor 12% gewijzigd door Daspeed op 28-02-2013 10:02 ]


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 15:01
de lokale instellingen heb ik gisteren ook gecontroleerd, maar dit staat gewoon goed (als in 'hetzelfde bij mijn collega waar het wel werkt'). **

Ik zal het inderdaad eens ombouwen naar een parse ipv convert, maar dat is enkel het symptoom verhelpen en niet het probleem. Want wie weet wat er nog meer omvalt.

-- edit --
** De korte datum notatie stond nog anders. Deze aangepast naar dezelfde instelling als mijn collega en nu werkt het weer!

Hoe kan zoiets nou spontaan wijzigen in Windows???

[ Voor 24% gewijzigd door PdeBie op 28-02-2013 10:20 . Reden: oplossing ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
pdebie schreef op donderdag 28 februari 2013 @ 10:11:
Hoe kan zoiets nou spontaan wijzigen in Windows???
Ranzige software die met z'n takke aan globale instellingen komt geïnstalleerd o.i.d.

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


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 15:01
Het enige wat ik de laatste tijd geïnstalleerd heb is Resharper van JetBrains. Mag toch niet hopen dat zij dat gedaan hebben. :P

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
pdebie schreef op donderdag 28 februari 2013 @ 10:41:
Het enige wat ik de laatste tijd geïnstalleerd heb is Resharper van JetBrains. Mag toch niet hopen dat zij dat gedaan hebben. :P
Iets met assumptions en mothers enzo, maar ik verwacht 't ook niet. Misschien iets anders vergeten of stiekem zelf ergens met je tengels aangezeten? :P

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


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 15:01
ow ja, ik heb nog logitec setpoint geinstalleerd vanwege mijn nieuwe trackball. Maar that's it.

Anyway, het werkt weer. Ga geen tijd verspillen aan het zoeken van de dader. Moet nu ergens 3 uur in zien te halen die ik heb besteed aan dit gedoe. |:(
Pagina: 1