2013-03-04 471 views
11

我使用转换,如:Convert.ToDateTime:如何设置格式

Convert.ToDateTime(value) 

,但我需要转换日期,如 “MM/YY” 格式化。
我正在寻找这样的事情:

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

'DateTime'对象没有定义的格式。您可以以格式输出DataTime,那是什么意思? – 2013-03-04 14:15:30

回答

14

你或许应该请使用DateTime.ParseExactDateTime.TryParseExact代替。它们允许你指定特定的格式。我个人更喜欢Try -versions,因为我认为它们为错误情况生成更好的代码。

+1

datetime.paeseExact(“12/12”,“mm/yy”,Cul ..)= {01/01/2012 00:12:00}; – Refael 2013-03-04 14:40:11

+0

但我期待{01/12/12}或{12/12} – Refael 2013-03-04 14:40:32

+1

@Refael您需要阅读[自定义日期和时间格式字符串](http://msdn.microsoft.com/en-us/library /8kb3ddd4.aspx)。 'mm'是分钟,'MM'是几年。 – 2013-03-04 14:55:56

9

如果value是在格式string并且希望将其转换成一个DateTime对象,你可以使用DateTime.ParseExact静态方法:

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

例子:

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

Console.WriteLine(myDate.ToShortDateString()); 

结果:

2012-12-01 
+0

我试试这个:string value =“12/12”; format =“mm/yy”;然后datetime.paeseExact(value,format,Cul ..)= return {01/01/2012 00:12:00}。为什么? – Refael 2013-03-04 14:28:47

+0

因此'DateTime.ParseExact(value,“mm/yy”,CultureInfo.CurrentCulture);'应该可以工作。 – MarcinJuraszek 2013-03-04 14:29:36

+0

我期待{01/12/12}或{12/12} – Refael 2013-03-04 14:35:17

1

DateTime没有格式。格式只有当你把一个DateTime成一个字符串,这恰好隐含您展示一种形式,网页上的价值,等等

其中你显示日期时间,并设置格式适用那里(或者如果你需要额外的指导,请修改你的问题)。

0

如何:

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

当测试将等于 “12/2012”

希望它能帮助!请参阅HERE