2016-10-12 18 views
6

Với đoạn mã sau tôi nhận được kết quả sau đây trong văn hoá de-CH:Thay đổi được trả về từ ToString ("MMMM") để sở hữu tên

var dateFormat = new DateTime(2016, 10, 12).ToString("MMMM"); 
//Oktober 

Mặc dù những gì tôi thực sự muốn là "Oktobär" vì Tôi đang dịch sang tiếng địa phương.

Tôi có thể ghi đè tên tháng nào được trả lại trong văn hóa de-CH không? Tên mà nó trả về cho các nền văn hóa khác nên giữ nguyên.

+0

Swiss German không có quy tắc chính tả chính thức. Do đó bạn không thể đạt được điều đó bằng cách thay đổi nó thành văn hóa de-CH. –

+0

@diiN_ Vâng, tôi biết điều đó. –

+3

Bạn có thể thay đổi nó cho một ví dụ cụ thể của 'CultureInfo' (xem' DateTimeFormatInfo.MonthNames') nhưng điều đó sẽ không thay đổi điều gì xảy ra nếu bạn tìm nạp lại văn bản 'de-CH'. Bạn có luôn luôn sử dụng văn hóa cụ thể đó không? Nếu vậy, bạn chỉ có thể chuyển nó vào tất cả các cuộc gọi 'ToString' /' Format'. –

Trả lời

4
CultureInfo myCIclone = new CultureInfo("de-CH"); 

myCIclone.DateTimeFormat.MonthNames = new string[] 
{"1","2","3","4","5","6","7","8","9","Oktobär","11","12", "13"}; 

var dateFormat = new DateTime(2016, 10, 12).ToString("MMMM", myCIclone); 

Bạn có thể ghi đè MonthNames như John Skeet đã đề cập, để biết thông tin văn hóa cụ thể.

+1

Và nếu bạn đặt văn bản đã sửa đổi trên luồng hiện tại, bạn không cần chỉ định nó làm tham số thứ hai của phương thức 'ToString'. –

+0

Cảm ơn, điều này hoạt động như mong đợi! Tôi đọc điều này trong tài liệu về DateTimeFormat.MonthNames: 'Nếu bạn thiết lập thuộc tính MonthNames, bạn cũng phải đặt thuộc tính MonthGenitiveNames.' Chúng sẽ được sử dụng để làm gì? Tôi không hiểu nhận xét được thêm vào thuộc tính MonthGenetiveNames: 'Trong một số ngôn ngữ, tên tháng là một phần của ngày xuất hiện trong trường hợp gốc. Ví dụ: một ngày trong tiếng Nga (Nga) hoặc "ru-RU", văn hóa bao gồm số ngày và tên tháng mang tính di truyền, chẳng hạn như 1 Января.' –

+1

@Marimba từ những gì tôi hiểu điều này là dành cho trường hợp ngữ pháp của ngôn ngữ. Hầu hết các ngôn ngữ cyrillic có điều này, có nghĩa là tùy thuộc vào ngữ cảnh tên tháng sẽ khác nhau. Vì vậy, nếu ngôn ngữ của bạn có trường hợp ngôn ngữ sinh sản, bạn cũng nên ghi đè lên ngôn ngữ đó. – mybirthname

0

Điều này có thể giúp bạn đầy đủ. Bạn cần ghi đè giá trị mặc định.

//Declare Culture Info with your goblaization name. 
CultureInfo culture = new CultureInfo("de-CH"); 

//Assign needed value. 
culture.DateTimeFormat.MonthNames = new string[]{"1","2","3","4","5","6","7","8","9","Oktobär","11","12", "13"}; 

//Assign it in string. 
string date= new DateTime(2016, 10, 12).ToString("MMMM", culture); 
Các vấn đề liên quan