gpt4 book ai didi

c# - TryParseExact 方法如何在多格式数组中工作

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:59 28 4
gpt4 key购买 nike

我对 tryparseexact 方法的工作原理有疑问。

因为我需要将 excel 数据上传到 sql server 的任务。我需要从 excel 转换 sql 中的日期时间列。但我在 EXCEL 中没有标准格式的列。所以使用 tryparse 准确。但它如何区分 普通字符串中的 dd 和 mm 例如:10/01/2016 如何将其区分为 dd/mm/yyyy 或 mm/dd/yyyy。

我正在使用下面的链接作为引用

Reference Link

预先感谢您的回答。

最佳答案

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

  // 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"

关于c# - TryParseExact 方法如何在多格式数组中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36301645/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com