3

我有 Excel 文件中的日期。到目前为止的要求是,它可以采用 YYYY-MM-DD 格式。

于是我写了下面的代码把它转换成MM/dd/yyyy:

DateTime excelDate = DateTime.ParseExact(value, 
                                         "yyyy-MM-dd", 
                                         CultureInfo.InvariantCulture, 
                                         DateTimeStyles.None);

value = value != "" ? excelDate.ToString("MM/dd/yyyy") : value;

但现在的要求是:它可以采用 YYYY-MM-DDMM/DD/YYYYYYYYMMDDMM-DD-YY等任何格式。想知道如何快速处理这些并将其转换为 MM/DD/YYYY 吗?

4

2 回答 2

8

需要和格式字符串数组有一个重载。ParseExact

var formats = new string[] {"yyyy-MM-dd", "MM/dd/yyyy", "yyyyMMdd", "MM-dd-yy"};
DateTime excelDate = DateTime.ParseExact(value, 
                                         formats, 
                                         CultureInfo.InvariantCulture, 
                                         DateTimeStyles.None);
于 2012-12-20T20:01:11.373 回答
0

如果您事先不确切知道可能传入的格式,DateTime.Parse()将尝试为您检测传入的格式:

DateTime excelDate = DateTime.Parse(value
                                    CultureInfo.InvariantCulture);

请注意,您也可以传递DateTimeStyles参数,但可能不需要或不需要,具体取决于您想要的行为。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/kc8s65zs.aspx

于 2012-12-20T20:13:33.043 回答