TryParseExact方法如何在多个格式数组中工作

我有一个关于如何使用这个工具的问题。

作为有任务的地方,我需要上传Excel数据到SQL服务器。 在那里我需要从Excel中转​​换sql中的date时间列。 但我没有在EXCEL中的标准格式列。 所以使用tryparse确切。 但它如何区分正常string中的DD和MM例如:10/01/2016如何区分它为dd / mm / yyyy或mm / dd / yyyy。

我使用下面的链接作为参考

参考链接

提前谢谢你的答案。

我build议对两种可能的格式进行投票 ,然后分析投票:

  // collect all the datetime values in the Excel sheet(s) String[] data = new String[] { "01/02/2000", "25/08/2007", "09/10/2010" }; DateTime dt; // then analyze them: int votesForDayMonth = data .Count(item => DateTime.TryParseExact(item, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out dt)); int votesForMonthDay = data .Count(item => DateTime.TryParseExact(item, "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out dt)); if (votesForDayMonth == votesForMonthDay) { // Ambiguity, unlucky you } else if (votesForDayMonth >= data.Length) { // dd/MM/yyyy order: all data can be parsed as dd/MM/yyyy but not as MM/dd/yyyy } else if (votesForMonthDay >= data.Length) { // MM/dd/yyyy order: all data can be parsed as MM/dd/yyyy but not as dd/MM/yyyy } else if (votesForDayMonth > votesForMonthDay) { // probably dd/MM/yyyy order } else { // probably MM/dd/yyyy order } 

在许多实际情况下,当您有足够清晰的数据时,您可以找出格式。 在上面的代码中是"dd/MM/yyyy order"