2009-09-11 7 views
11

Tôi có đoạn code sau trong file codebehind của một trang ASP.NetC# DateTime ToString ("MM-dd-yyyy") trả về giá trị hài hước ngày

txtStartDate.Text = DateTime.Today.ToString("MM-dd-yyyy"); 

Mà tôi mong đợi để trở về "09-11 -2009 ". Tuy nhiên, khi tôi chạy trang trên máy chủ phát triển, tôi thấy "09-00-2009" trong hộp văn bản. Tôi không thể thấy bất kỳ lý do nào cho điều này, vì vậy tôi rõ ràng thiếu một cái gì đó. Bất cứ ai cũng có một đầu mối?

+0

điều tương tự hoạt động tốt đối với tôi. Có lẽ đồng hồ hệ thống của bạn bị rối tung? – ryber

+0

kiểm tra bằng ToString ("MM-ddd-yyyy"); và với ToString ("MM-dddd-yyyy"); và xem những gì bạn nhận được ... Nếu bạn thấy NO thay đổi, sau đó yr định dạng chuỗi không nhận được để trả lại trang bằng cách nào đó ... Nếu yo xem 09-Mon-2009, và 09-Monday-2009, sau đó máy tính của bạn là off –

Trả lời

7

Đó format string nên làm việc như mong đợi. Tôi muốn kiểm tra hộp văn bản của bạn để chắc chắn rằng bạn không có một số loại mặt nạ (AJAX MaskedEditExtender?) Trên đó. Nếu bạn đã làm, và có lẽ đã có mặt nạ không chính xác, nó có thể ghi đè lên những gì bạn đã đặt trong hộp văn bản.

+0

Nó có AJAX CalendarExtender trên đó, nhưng chuỗi định dạng cho cả hai là giống hệt nhau. –

+0

Đó là nó - tôi đã mắc lỗi khi sao chép chuỗi định dạng cho bộ mở rộng. –

14

Tôi không thể nghĩ ra lý do tại sao nó sẽ hiển thị 00, nhưng như là một gợi ý ngẫu nhiên bạn có thể thử:

... = DateTime.Today.ToString("MM-dd-yyyy", CultureInfo.InvariantCulture); 
0

bạn có thể kiểm tra ngày giờ, Now.ToString() không?

+0

Vâng, tôi đã kiểm tra điều đó - cùng một kết quả. –

4

Hãy thử một cái gì đó như thế này:

DateTime.Today.ToString("MM-dd-yyyy", CultureInfo.CreateSpecificCulture("en-US")) 
+0

Cảm ơn lời khuyên tốt này. –

0

Sử dụng Now để có được thời gian địa phương

txtStartDate.Text = DateTime.Now.ToString("MM-dd-yyyy");