猿问

DateTimeStyles 和 WhiteSpaces 字符

我想了解 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


泛舟湖上清波郎朗
浏览 193回答 2
2回答

不负相思意

正如评论中的其他人已经提到的那样,您"的表达式中有一个文字,它不是空格而是无效字符。这就是为什么您的值不会解析的原因。要解决您的其他问题:任何人都可以帮我举一些关于带有空白的 DateTimeStyles 的例子。显然,这些Allow*值仅与 相关(Try)ParseExact,与(Try)Parse( MSDN )无关:该ParseExact和TryParseExact方法可以使用任何的DateTimeStyles值。但是,如果没有选择任何 Allow* 值,则输入字符串必须与格式字符串具有完全相同的空白字符。例子:string s = "\t 1998-07-31 12:00:00Z "; // has leading and trailing whitespaceDateTime 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));

白衣非少年

当您使用 时\,您是在告诉编译器将后面的内容称为字面承租人。这就是为什么在您的情况下,您尝试解析以"t".你可以解析 "31/07/1998 12:00:00"
随时随地看视频慕课网APP
我要回答