Rel*_*ity 5 c# datetime tryparse
以下代码行返回true(它不应该)....并将1.0228转换为datetime ...
DateTime.TryParse(1.0228,out temporaryDateTimeValue)
Run Code Online (Sandbox Code Playgroud)
有人请帮帮我.
以下代码行返回true(它不应该)....并将1.0228转换为datetime ...
DateTime.TryParse(1.0228,out temporaryDateTimeValue)
Run Code Online (Sandbox Code Playgroud)
这不会编译.
但是,如果你用引号括起来(并清理一下),
bool success = DateTime.TryParse("1.0228", out temporaryDateTimeValue);
Run Code Online (Sandbox Code Playgroud)
那么,是的,你会true回来的.您需要阅读文档以了解原因,但基本上,有许多不同的格式化日期的方法,你偶然发现了一个(也许M.yyyy?).
如果你不想解析它,我可以建议
bool success = DateTime.TryParseExact(
"1.0228",
"yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out temporaryDateTimeValue
);
Run Code Online (Sandbox Code Playgroud)
然后success是false.
我从文件中的评论中注意到:
s使用当前DateTimeFormatInfo对象中的格式信息解析字符串,该信息由当前线程文化隐式提供.如果可能,此方法会尝试忽略无法识别的数据,并使用当前日期填写缺少的月,日和年信息.如果s只包含日期而没有时间,则此方法假定时间是午夜12:00.s中的任何前导,内部或尾随空格字符都将被忽略.日期和时间可以用一对前导和尾随的NUMBER SIGN字符('#',U + 0023)括起来,并且可以用一个或多个NULL字符(U + 0000)跟踪.
因为该
DateTime.TryParse(String, DateTime)方法尝试string使用当前文化的格式规则来解析日期和时间的表示,所以尝试解析string跨不同文化的特定可能会失败或返回不同的结果.如果将跨不同的语言环境解析特定的日期和时间格式,请使用DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime)方法或方法的其中一个重载TryParseExact并提供格式说明符.
基本上,TryParse"尝试"很难解析你给它的字符串(尽管" Try"实际上指的是该方法返回bool以获得成功/失败指示).
| 归档时间: |
|
| 查看次数: |
11719 次 |
| 最近记录: |