- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对 tryparseexact 方法的工作原理有疑问。
因为我需要将 excel 数据上传到 sql server 的任务。我需要从 excel 转换 sql 中的日期时间列。但我在 EXCEL 中没有标准格式的列。所以使用 tryparse 准确。但它如何区分 普通字符串中的 dd 和 mm 例如:10/01/2016 如何将其区分为 dd/mm/yyyy 或 mm/dd/yyyy。
我正在使用下面的链接作为引用
预先感谢您的回答。
最佳答案
我建议对两种可能的格式进行投票,然后分析所投的票数:
// 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/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Parse DateTime with timezone of form PST/CEST/UTC/etc
我在 linqpad 中使用以下代码(删除 native C# 的 .Dump()): string dateTime = "3/20/2015 1:45:00 PM"; string dateF
我对 tryparseexact 方法的工作原理有疑问。 因为我需要将 excel 数据上传到 sql server 的任务。我需要从 excel 转换 sql 中的日期时间列。但我在 EXCEL 中
这个问题在这里已经有了答案: DateTime conversion from string C# (3 个答案) 关闭 5 年前。 我有一个没有字段分隔符的时间和日期值,我试图使用 TryPars
是否可以指示 DateTime.TryParseExact 接受多个( 任何 )分隔符( 指定分隔符占位符而不是特定分隔符 )?例如: DateTime.TryParseExact(performan
如何使用 DateTime.TryParseExact 进行防护(并尽可能获取解析值)?以下代码不起作用。 [] let main args = let argList = args |> L
使用下面的 DateTime.TryPaseExact 方法会在预期的时候给出不同的输出。 我从下面的代码中返回了以下格式: 2014-02-10 18:32:37 1402-10-18 17:23:
知道为什么当我的字符串中有时间 "00:00:00" 时这不起作用吗? DateTime.TryParseExact("01/06/2015 00:00:00", "dd/MM/yyyy", Cult
下面的代码工作正常,只是想知道是否有更优雅的方式来实现同样的事情?下面的日期应该是有效的,除此之外的任何其他日期都不应该: 1/12/2017 1/12/2017 11:10 1/12/2017 11
为什么这不起作用? DateTime.TryParseExact(text, "H", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteS
我讨厌问愚蠢的问题,但我已经浏览了 MSDN 文章几次并尝试了一个小时,但无论我尝试什么,我都无法让这种格式工作。这是我要解析的内容: Thu, Jun 22 与 bool parsed = Date
我正在尝试解析一个巨大的文件,其中包含一些 DateTime 行。出于某种原因,DateTime.TryParseExact 仅在某些行而不是其他行上返回 true。 我的 DateParse.txt
为什么会 DateTime.TryParseExact("08/10/2013", "dd/MM/yyyy", null, DateTimeStyles.None, out dateValue)
下面的代码片段显示“07/01/2011”而不是“07/09/2011”。这段代码有什么问题吗? 代码片段: DateTime result; DateTime.TryParseExact( "
我正在对要解析为 DateTime 的字符串调用 TryParse。简单的东西。当格式符合我的预期时,这一切都有效。但是当日期的每个组成部分/部分组成部分是单个数字时,解析失败。 例子: var da
我无法完成这项工作 - 它总是返回 False。 我在这里错过了什么? DateTimeOffset parsedDate; if ( DateTimeOffset.TryParseExact("20
我在使用 DateTime.ParseExact(..) 将 DateTime 值的字符串表示形式解析回 DateTime 实例时遇到问题方法。 出于某种原因,使用具有不同值的类似格式化字符串(或者我
我有一个包含日期时间值的 json 字符串和如下所示的解析机制: if (DateTime.TryParseExact(TheUserTimeString, "M.d.yyyy.HH.mm", Cul
您好,我有以下方法,我将值“2014 年 1 月 7 日 13:48:46”传递给它,据我所知,TryParseExact 应该匹配格式“dd MMM yyyy hh:mm:ss”和返回 true,但
谁能解释为什么下面的代码片段返回 true? 根据 The "d" custom format specifier 的文档, "个位数的日期格式不带前导零。"那么,当我给它一个带前导零的个位数日时,为
我是一名优秀的程序员,十分优秀!