Đây là một điều lạ đối với bạn..ToShortDateString trả về định dạng văn hóa khác với mong đợi
Chúng tôi đã có giao diện C# đang chạy từ đầu năm mà không gặp sự cố trên máy tính Windows XP (32bit). Chúng tôi vừa nâng cấp PC lên Windows 7 (64bit) với các ứng dụng được cài đặt bởi SCCM.
Với lần chạy mới nhất, các ngày trong vùng văn bản đã bắt đầu xuất hiện ở định dạng Hoa Kỳ (5/2/2014) thay vì định dạng Anh (02/05/2014).
Mã đang được sử dụng là:
string Lines = FromFormat.Text + " from " + FromFormat.Charge_From.ToShortDateString() + " to " + FromFormat.Charge_To.ToShortDateString() +".";
đâu FromFormat là một đối tượng với các nguồn dữ liệu, Charge_From & Charge_To là DataTime biến.
Chúng tôi đã kiểm tra các thiết lập khu vực của máy tính và tạo ra một ứng dụng thử nghiệm nhỏ để hiển thị các thiết lập của máy tính từ Net cả hai được thiết lập như là định dạng UK Mã cho ứng dụng thử nghiệm:
label1.Text = DateTime.Now.ToString();
label2.Text = DateTime.Now.ToString("dd MMM yyyy");
label3.Text = DateTime.Now.ToShortDateString();
label4.Text = Thread.CurrentThread.CurrentCulture.EnglishName;
Tôi biết rằng Tôi có thể thay thế ToShortDateString()
bằng một số ToString("dd/MM/yyyy")
để buộc định dạng đúng nhưng câu hỏi của tôi là tại sao điều này lại xảy ra?
Có liên quan gì đến việc nâng cấp Windows 7 không? hoặc SCCM?
Cảm ơn trước
'CurrentCulture' của bạn là gì? Có phải «en-GB' hoặc' en-US'? –
_ "Tôi biết rằng tôi có thể thay thế ToShortDateString() bằng ToString (" dd/MM/yyyy ") để buộc định dạng đúng" _ Không đúng, 'ToString (" dd/MM/yyyy ")' cũng sẽ sử dụng dấu phân tách ngày của văn hóa curent thay vì '/'. –
Theo như tôi có thể nói tất cả các PC đang sử dụng en-GB – Tony