为了账号安全,请及时绑定邮箱和手机立即绑定

DateTimeStyles 和 WhiteSpaces 字符

DateTimeStyles 和 WhiteSpaces 字符

C#
泛舟湖上清波郎朗 2021-11-21 16:11:32
我想了解 DateTimeStyles 在DateTime.Parse(String s, IFormatProvider,DateTimeStyles)Method 中的用途基本上DateTimeStyles是填充 like AllowInnerWhite,AllowLeadingWhite以及其他处理“空白字符”的根据 msdn.microsoft 这些字段用于忽略空格当它进入我们要转换为Datetime值的字符串时我尝试了一些类似的东西        var TestDate = "\"t\"31/07/1998 12:00:00";        // Try To parse with en-GB culture        var result1 = DateTime.Parse(TestDate, CultureInfo.CreateSpecificCulture("en-GB"),DateTimeStyles.AllowWhiteSpaces);        Console.WriteLine(result1);但我有一个例外对于初学者,我没有找到任何示例来证明 White-Spaces 的想法,这些字段处理 White-Spaces。对我来说,我认为转义字符是 C# 中的空白之一,这就是为什么用来查看会发生什么的原因!谁能帮我举一些关于这两个点的例子 White-Spaces,DateTimeStyles with White-Spaces
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

正如评论中的其他人已经提到的那样,您"的表达式中有一个文字,它不是空格而是无效字符。这就是为什么您的值不会解析的原因。


要解决您的其他问题:


任何人都可以帮我举一些关于带有空白的 DateTimeStyles 的例子。


显然,这些Allow*值仅与 相关(Try)ParseExact,与(Try)Parse( MSDN )无关:


该ParseExact和TryParseExact方法可以使用任何的DateTimeStyles值。但是,如果没有选择任何 Allow* 值,则输入字符串必须与格式字符串具有完全相同的空白字符。


例子:


string s = "\t 1998-07-31 12:00:00Z "; // has leading and trailing whitespace

DateTime dt;


// Prints True: (Try)Parse does not care.

Console.WriteLine(DateTime.TryParse(s, null, DateTimeStyles.None, out dt));


// Prints False: (Try)ParseExact does not like whitespace.

Console.WriteLine(DateTime.TryParseExact(s, "u", null, DateTimeStyles.None, out dt));


// Prints True: (Try)ParseExact accepts whitespace, if we tell it to.

Console.WriteLine(DateTime.TryParseExact(s, "u", null, DateTimeStyles.AllowWhiteSpaces, out dt));



查看完整回答
反对 回复 2021-11-21
?
白衣非少年

TA贡献1155条经验 获得超0个赞

当您使用 时\,您是在告诉编译器将后面的内容称为字面承租人。
这就是为什么在您的情况下,您尝试解析以"t".

你可以解析 "31/07/1998 12:00:00"


查看完整回答
反对 回复 2021-11-21
  • 2 回答
  • 0 关注
  • 192 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信