C# TryParse无理由返回false

C# TryParse无理由返回false,c#,.net,tryparse,C#,.net,Tryparse,我在控制台应用程序中遇到了一个简单的TryParse问题 看一看: string DepartureTimeString = Console.ReadLine(); // Enter 2015 01 11 22 45 30 // DepartureTimeString = 2015 01 11 22 45 30 string DepartureTimeStringTrim = DepartureTimeString.Replace(" ", ""); // DepartureTimeString

我在控制台应用程序中遇到了一个简单的TryParse问题

看一看:

string DepartureTimeString = Console.ReadLine(); // Enter 2015 01 11 22 45 30
// DepartureTimeString = 2015 01 11 22 45 30
string DepartureTimeStringTrim = DepartureTimeString.Replace(" ", "");
// DepartureTimeStringTrim = 20150111224530
Analyseur = int.TryParse(DepartureTimeStringTrim, out Resultat);
// Analyseur = false
“分析者”是假的。。 字符串是20150111224530。。它只是一个int。。 我已经检查了VS中的停止点数据以确定


问题在哪里

使用Long代替Int。Int没有那么大。

使用Long代替Int。Int没有那么大。

可以存储在Int或Int32中的最大值是或2147483647

试图存储在int类型变量中的值大于此值,因此操作失败。 此值应使用long或Int64

我看到您正在尝试用int存储DateTime。除非您有很好的理由这样做,否则这不是一个好的实践。可以使用将输入转换为日期时间。如果将int用作容器,则无法确定用户输入的日期是否有效,但可以使用DateTime


如上所述,您可以使用yyyy MM dd HH MM ss作为DateTime.TryParseExact中的格式字符串,并将输入值解析为DateTime。

可以存储在int或Int32中的最大值为2147483647

试图存储在int类型变量中的值大于此值,因此操作失败。 此值应使用long或Int64

我看到您正在尝试用int存储DateTime。除非您有很好的理由这样做,否则这不是一个好的实践。可以使用将输入转换为日期时间。如果将int用作容器,则无法确定用户输入的日期是否有效,但可以使用DateTime

如前所述,您可以使用yyyy MM dd HH MM ss作为DateTime.TryParseExact中的格式字符串,并将输入值解析为DateTime。

这似乎是DateTime而不是int,因此请使用DateTime.TryParse:

无法将其解析为int的原因是alrady,无法将其保存在2147483648到2147483647之间,您需要一个更大的数据类型,如long。

它似乎是DateTime而不是int,因此请使用DateTime.TryParse:


无法将其解析为int的原因是alrady,无法将其保持在2147483648到2147483647之间,您需要一个更大的数据类型,如long。

这看起来像是一个日期-您是否有理由尝试将其解析为int而不是DateTime?也许我会不劳而获。。。我只想将我的字符串转换成日期时间。这看起来像是一个日期-你有没有理由试图将其解析为int而不是DateTime?也许我只是徒劳无功。。。我只是想在DateTime中转换我的字符串。我想到了这一点,但不想给人这样的印象,即20150111224530将直接解析到2015-01-11 22:45:30.000。我想到了这一点,但不想给人这样的印象,即20150111224530将直接解析到2015-01-11 22:45:30.000谢谢你的回答。我可以将类似我的字符串的字符串转换为DateTime而无需更多步骤吗?Works:Analyseur=Int64.TryParseDepartureTimeStringTrim,out Resultat64;谢谢你的回答。我可以将类似我的字符串的字符串转换为DateTime而无需更多步骤吗?Works:Analyseur=Int64.TryParseDepartureTimeStringTrim,out Resultat64;回答得好。我甚至不知道日期时间。谢谢,它很强大!回答得好。我甚至不知道日期时间。谢谢,它很强大!
string departureString = "2015 01 11 22 45 30";
DateTime departure;
if (DateTime.TryParseExact(departureString, "yyyy MM dd HH mm ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out departure))
    Console.Write("Departure at: " + departure.ToShortDateString());