Tôi muốn viết một phương thức cung cấp cho tôi 3 chữ cái - đại diện cho ngày, tháng, năm - từ một datetimeformat.DateTime nhận được các chữ cái đại diện cho ngày, tháng, năm từ hiện tại
Vì vậy, trong nền văn hóa Mỹ en giá trị trả về mong muốn của tôi sẽ là (cộng với dấu phân cách)
- d
- M
- y
- /
trong de-DE cùng một phương thức phải trả lại
- T (T ag = ngày)
- M (M ONAT = tháng)
- J (J AHR = năm)
- . (Separator)
tôi đã có một cái nhìn vào hình thức DateTimeFormatInfo lớp CurrentCulture nhưng chỉ có thể tìm thấy các dấu phân cách bạn có bất kỳ ý tưởng làm thế nào tôi có thể nhận được phần còn lại?
var culture = Thread.CurrentThread.CurrentCulture;
Console.WriteLine(culture.DateTimeFormat.DateSeparator);
tôi cần điều này vì TEXT chức năng bên trong Excel không chấp nhận định dạng từ InvariantCulture và chỉ xử lý nó từ CurrentCulture.
Vì vậy, một cái gì đó như thế này là không hợp lệ trong Đức phiên bản Excel:
=TEXT(NOW();"dd.MM.yyyy")
này cần phải được thiết lập với
=TEXT(NOW();"TT.MM.JJJJ")
(nó không quan trọng nếu nó được thực hiện với VBA, nó không được dịch) Bạn có thể xem qua số http://www.rondebruin.nl/win/s9/win013.htm
Định dạng chuỗi này có thể là bất kỳ thứ gì vì người dùng có thể nhập nó theo ý muốn và tôi cần dịch nó sang văn hóa hiện tại.
bạn đang sử dụng chuỗi định dạng nào? các giá trị chính không thay đổi với văn hóa. –
không tồn tại trong .net - có lẽ bạn có thể tự viết một cái gì đó. –
@ DanielA.White làm thế nào bạn sẽ làm điều đó, với thao tác chuỗi đơn giản và phương pháp đó trông như thế nào, bạn sẽ nhìn vào đặc tính gì, tôi thực sự không biết tất cả các nền văn hóa có thể khác và phương pháp thao tác chuỗi hợp lệ cho mọi nền văn hóa và mọi người dùng đều có thể thay đổi cài đặt của mình thành một thứ hoàn toàn ngẫu nhiên. –