2013-03-04 27 views
11

tôi sử dụng chuyển đổi như:Convert.ToDateTime: làm thế nào để thiết lập định dạng

Convert.ToDateTime(value) 

nhưng tôi cần ngày chuyển đổi sang định dạng như "mm/yy".
Tôi đang tìm một cái gì đó như thế này:

var format = "mm/yy"; 
Convert.ToDateTime(value, format) 
+2

'DateTime' đối tượng không có một định dạng xác định. Bạn có thể xuất DataTime trong một định dạng, đó là ý của bạn? –

Trả lời

14

Bạn có lẽ nên sử dụng một trong hai DateTime.ParseExact hoặc DateTime.TryParseExact để thay thế. Chúng cho phép bạn chỉ định các định dạng cụ thể. Cá nhân tôi thích các thông tin Try vì tôi nghĩ rằng chúng tạo ra mã đẹp hơn cho các trường hợp lỗi.

+1

datetime.paeseExact ("12/12", "mm/yy", Cul ..) = {01/01/2012 00:12:00}; – Refael

+0

nhưng tôi mong đợi {01/12/12} hoặc {12/12} – Refael

+1

@Refael bạn cần phải đọc trên [Ngày tùy chỉnh và Chuỗi định dạng thời gian] (http://msdn.microsoft.com/en-us/library /8kb3ddd4.aspx). 'mm' là phút,' MM' là năm. –

9

Nếu value là một string ở định dạng đó và bạn muốn chuyển đổi nó thành một đối tượng DateTime, bạn có thể sử dụng phương pháp DateTime.ParseExact tĩnh:

DateTime.ParseExact(value, format, CultureInfo.CurrentCulture); 

Ví dụ:

string value = "12/12"; 
var myDate = DateTime.ParseExact(value, "MM/yy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); 

Console.WriteLine(myDate.ToShortDateString()); 

Kết quả:

2012-12-01 
+0

tôi thử điều này: string value = "12/12"; định dạng = "mm/yy"; sau đó datetime.paeseExact (giá trị, định dạng, Cul ..) = return {01/01/2012 00:12:00}. tại sao ? – Refael

+0

Vì vậy, 'DateTime.ParseExact (giá trị," mm/yy ", CultureInfo.CurrentCulture);' nên hoạt động. – MarcinJuraszek

+0

tôi mong đợi đến {01/12/12} hoặc {12/12} – Refael

1

DateTime không có định dạng. định dạng chỉ áp dụng khi bạn đang quay một DateTime vào một chuỗi, mà xảy ra ngầm bạn hiển thị các giá trị trên một hình thức, trang web, vv

Nhìn vào nơi bạn đang hiển thị các DateTime và thiết lập định dạng có (hoặc sửa đổi câu hỏi của bạn nếu bạn cần hướng dẫn bổ sung).

0

Làm thế nào về điều này:

string test = "01-12-12"; 
    try{ 
     DateTime dateTime = DateTime.Parse(test); 
     test = dateTime.ToString("dd/yyyy"); 
    } 
    catch (FormatException exc) 
    { 
     MessageBox.Show(exc.Message); 
    } 

đâu kiểm tra sẽ bằng "12/2012"

Hy vọng nó sẽ giúp!

Vui lòng đọc HERE.

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