Jestem całkowicie zaskoczony tym. O ile widzę dokumentację i inne posty na SO, które przeczytałem, muszę powiedzieć, że to powinno działać. Muszę tęsknić za czymś głupim, ale po prostu tego nie widzę.DateTime.ParseExact FormatException String nie został rozpoznany jako ważny DateTime
Otrzymuję wyjątek FormatException z komunikatem "Ciąg nie został rozpoznany jako poprawny obiekt DateTime". na następnej linii kodu:
return DateTime.ParseExact(value, DateFormat, null,
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
value
jest"11/04/2013"
DateFormat
jest"dd/MM/yyyy"
- Obecna kultura jest
en-GB
- Próbowałem różne warianty
DateTimeStyles
ale bez skutku.
Mój oryginalny zamiarem było dla formatu ddd, dd/MMM/yyyy
ale to nie działa albo (wartość w tym przypadku był Tue, 30/Apr/2013
)
Próbowałem zostały również zmusza do kultury en-GB, przekazując new CultureInfo("en-GB")
zamiast null
również ekstrahowano kod w swoim zastosowaniu konsoli, czy nie różniła się w środowisku (ASP.NET MVC 3)
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var DateFormat = "dd/MM/yyyy";
var value = "30/04/2013";
var culture = new CultureInfo("en-GB");
var result = DateTime.ParseExact(value, DateFormat, culture,
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
Console.WriteLine("\"{0}\" as \"{1}\" ==> {2}", value, DateFormat, result);
Console.ReadKey();
}
}
}
I nadal daje mi ten sam błąd.
Aplikacja konsoli działa dla mnie. Domyślna kultura na mojej maszynie: "de-DE" –
Dwaj moi koledzy mówią, że działa również na nich. Ale moje maszyny błagają się różnić. Być może moja instalacja jest uszkodzona. Nie wiem jak - inny kod działa poprawnie. –
Jakie są wartości 'Thread.CurrentThread.CurrentCulture' i' Thread.CurrentThread.CurrentUICulture' na twoim komputerze? –