2009-12-21 44 views
6

Dòng nàychuyển đổi chuỗi ngày không có thời gian

System.DateTime.Parse("09/12/2009"); 

ngày chuyển đổi (string) để 9/12/2009 00:00:00. Làm thế nào tôi có thể có được một ngày trong mẫu 9/12/2009.

sau khi giải thích tôi làm:

DateTime dt = System.DateTime.Parse(Request.Form["datepicker"]); 
dt.ToString("dd/mm/yyyy"); 
/* and this code have time, why???*/ 
+2

Bạn có muốn ngày 9 tháng 12 hoặc ngày 12 tháng 9 không? –

+0

Tôi muốn ngày 09 tháng 12 – Ognjen

+0

Tham khảo liên kết này: [Nhấp vào tôi] (http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm)
để được trợ giúp thêm với ngày đó (ngày-thời gian) định dạng .. :) –

Trả lời

21

Vấn đề của bạn không phải là với phân tích nhưng với sản lượng. Hãy nhìn cách ToString công trình cho DateTime, hoặc sử dụng ví dụ này:

using System; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     DateTime dt = DateTime.Parse("09/12/2009"); 
     Console.WriteLine(dt.ToString("dd/MM/yyyy")); 
    } 
} 

Hoặc để có được một cái gì đó trong miền địa phương của bạn:

Console.WriteLine(dt.ToShortDateString()); 

Cập nhật: Cập nhật của bạn cho câu hỏi ngụ ý rằng bạn không hiểu biết đầy đủ của tôi câu trả lời được nêu ra, vì vậy tôi sẽ thêm một chút giải thích thêm. Không có ngày trong .NET - chỉ có DateTime. Nếu bạn muốn đại diện cho một ngày trong .NET, bạn làm như vậy bằng cách lưu trữ thời gian nửa đêm vào đầu ngày hôm đó. Thời gian phải luôn luôn được lưu trữ, ngay cả khi bạn không cần nó. Bạn không thể xóa nó. Điểm quan trọng là khi bạn hiển thị DateTime này cho người dùng, bạn chỉ hiển thị cho họ phần Ngày tháng.

+2

+1 Đây là danh sách tốt nhất mà tôi đã tìm thấy, tôi đã đánh dấu trang này trong nhiều năm, với phần ghi đè định dạng. http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm –

+0

@Clarence: Danh sách tốt thực sự! –

+0

Đó là danh sách tôi đã liên kết từ ToString với. :) –

4

Mọi thứ được phân tích cú pháp thành đối tượng DateTime sẽ chứa ngày + giờ. Nếu không có thời gian được sepcified, giá trị giả định sẽ là 0000hr.

Để có được đại diện chỉ có ngày, tùy thuộc vào cách bạn định dạng nó thành chuỗi.

Ví dụ: theDate.ToString("dd/MM/yyyy")

Tham khảo MSDN Date and Time Format Strings.

0

nếu bạn muốn chuyển đổi cột datetime GridView cho đến nay chỉ có cột sử dụng mã này:

raddgvDaybook.Rows.ToList().ForEach(x => 
{ 
    DateTime dt = DateTime.Parse(x.Cells["Vocdate"].Value.ToString()); 
    string str = string.Format("{0:MM/dd/yyyy}", dt); 
    x.Cells["Vocdate"].Value = str; 
}); 

Tôi đã thử nghiệm mã nó sẽ làm việc nếu bạn ràng buộc datetime như chuỗi trong DGV.

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