2012-04-02 20 views

Trả lời

9

Vâng, tên tháng cũng có thể được bản địa hóa. Và có lẽ trong một số nền văn hóa kỳ lạ những năm được tính theo một cách khác nhau là tốt.

EDIT:
Ví dụ:

string x = "Montag, 2. April 2012"; 
DateTime dt1, dt2; 
bool r1 = DateTime.TryParseExact(x, "D", new CultureInfo("de-DE"), 0, out dt1); 
bool r2 = DateTime.TryParseExact(x, "D", new CultureInfo("en-US"), 0, out dt2); 

(r1 == true, r2 == false).

Hoặc, theo chiều ngược lại:

string y = "Monday, April 02, 2012"; 
DateTime dt3, dt3; 
bool r3 = DateTime.TryParseExact(y, "D", new CultureInfo("de-DE"), 0, out dt3); 
bool r4 = DateTime.TryParseExact(y, "D", new CultureInfo("en-US"), 0, out dt4); 

(r3 == false, r2 == true).

+0

Ví dụ xin vui lòng ??????? –

+0

@Royi: xem câu trả lời đã chỉnh sửa. – Vlad

+1

đó là tiếng Đức ('de-DE') cho thứ hai (nhưng có lẽ bạn có thể chia sẻ hình ảnh với chúng tôi?) – Vlad

4

Vì chuỗi định dạng không phải là chữ. Ví dụ: bạn đã sử dụng "/" và ":" nhưng đối với chuỗi đầu vào là bắt buộc để sử dụng các bộ tách datetime được cung cấp bởi CultureInfo.

Hãy tưởng tượng chuỗi định dạng này: M/d/yyyy
Những nguyên liệu đầu vào đều hợp lệ:

  • 04/02/2012 (đối với văn hóa bất biến, USA);
  • 2012/04/02 (đối với Phần Lan)
  • 04-02-2012 (cho Morocco)

Hơn nữa đơn giản "M" specifier có thể [1..12] hoặc [1..13] , tùy thuộc vào lịch của chính nó (xem MSDN).

Là "nến trên bánh", chức năng này là chung chung, do đó bạn có thể yêu cầu trong chuỗi định dạng một giá trị địa phương (hoặc quốc gia) (nghĩ về tên ngày trong tuần hoặc năm được chỉ định, ví dụ: tiếng Trung hoặc tiếng Nhật) .

+0

Tôi không hiểu bạn có thể giải thích? –

+0

chuỗi "M/d/yyyy" là định dạng thông số cho "4/2/2012" trong văn hóa en-US nhưng là đầu vào hợp lệ, ví dụ: "4-2-2012" cho văn hóa Ả Rập.Ký tự "/" có nghĩa là "dấu phân cách ngày mặc định cho văn hóa đã cho". Dù sao tôi đã cập nhật câu trả lời với một ví dụ. –

+0

nhưng ** im ** nói cho anh ta biết những người chia sẽ là gì! Tôi đã viết x/xx/xxx để '/' ... –

0

Bạn cần phải cho nó văn hóa, bởi vì nếu bạn vượt qua nó định dạng dd-mmm-yyyy sau đó vượt qua trong 01/05/2012

Trong tiếng Anh mà có thể là 01-May-2012

Nhưng trong một nền văn hóa khác sẽ là 01-Mai-2012

Các vấn đề liên quan