hợp lệ Tôi hoàn toàn bối rối về vấn đề này. Theo như tôi có thể xem tài liệu và các bài viết khác trên SO tôi đã đọc nói điều này sẽ làm việc. Tôi phải thiếu cái gì đó ngớ ngẩn, nhưng tôi không thể nhìn thấy nó.Chuỗi thời gian DateTime.ParseExact FormatException không được nhận dạng là DateTime
Tôi nhận được Định dạng ngoại lệ với thông báo "Chuỗi không được nhận dạng là Ngày giờ hợp lệ". trên dòng mã sau đây:
return DateTime.ParseExact(value, DateFormat, null,
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
value
là"11/04/2013"
DateFormat
là"dd/MM/yyyy"
- Văn hóa hiện nay là
en-GB
- Tôi đã thử các biến thể khác nhau của
DateTimeStyles
nhưng để có hiệu lực.
ý định ban đầu của tôi là cho các định dạng ddd, dd/MMM/yyyy
nhưng điều đó không làm việc, hoặc (giá trị trong trường hợp đó là Tue, 30/Apr/2013
)
Tôi cũng đã cố gắng buộc các nền văn hóa để en-GB bằng cách đi qua trong new CultureInfo("en-GB")
thay vì null
tôi cũng trích mã vào ứng dụng giao diện điều khiển riêng của mình để xem nếu có là khác nhau về môi trường (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();
}
}
}
Và điều đó vẫn mang lại cho tôi cùng một lỗi.
Ứng dụng bảng điều khiển hoạt động cho tôi. Văn hóa mặc định trên máy của tôi: "de-DE" –
Hai trong số các đồng nghiệp của tôi nói rằng nó hoạt động cho họ. Nhưng máy của tôi cầu xin khác biệt. Có lẽ cài đặt của tôi bị hỏng. Bạn không chắc chắn cách thức - mã khác hoạt động tốt. –
Giá trị của 'Thread.CurrentThread.CurrentCulture' và' Thread.CurrentThread.CurrentUICulture' trên máy của bạn là gì? –