C# 检查正确的日期格式是否会导致问题?

C# 检查正确的日期格式是否会导致问题?,c#,C#,我有一个检查字符串是否为日期格式的代码。 如果它是一个日期格式,我会用正确的日期格式写它,其他方式将它作为传入字符串 我的常规日期字符串格式是 2016-08-08T18:30:00.000Z //if string is in this format only it should go inside if case. namespace ConsoleApplication3 { class Program { static v

我有一个检查字符串是否为日期格式的代码。 如果它是一个日期格式,我会用正确的日期格式写它,其他方式将它作为传入字符串

我的常规日期字符串格式是

2016-08-08T18:30:00.000Z //if string is in this format only it should go inside if case.


namespace ConsoleApplication3
   {
        class Program
        {
            static void Main(string[] args)
            {
                var answerString = "11,10";
                DateTime dDate;

                if (DateTime.TryParse(answerString, out dDate))
                {
                    var date = DateTime.Parse(answerString);
                    // var indianTime = CovertToDefaultTimeZone(date);
                    answerString = date.ToString("dd/MM/yyyy");
                    Console.WriteLine(answerString);
                    Console.ReadLine();
                }
                Console.WriteLine(answerString);
                Console.ReadLine();
            }
        }
    }
我该怎么办

    if (DateTime.TryParseExact(answerString,"yyyy-MM-ddTHH:mm:ss.fffZ",CultureInfo.InvariantCulture,DateTimeStyles.None,out dDate))
    {
                    //var date = DateTime.Parse(answerString); no need to parse again parsed date is in dDate
                    // var indianTime = CovertToDefaultTimeZone(date);
                    answerString = dDate.ToString("dd/MM/yyyy");
                    Console.WriteLine(answerString);
                    Console.ReadLine();
    }
使用
TryParseExact
方法


使用
TryParseExact
方法。

您可以像这样使用
DateTime.TryParseExact

DateTime result; 
var formatString = "yyyy-MM-ddTHH\\:mm\\:ss.fffZ";
var isValidDate = DateTime.TryParseExact("2016-08-08T18:30:00.000Z", formatString, CultureInfo.InvariantCulture, DateTimeStyles.None, out result);

您可以像这样使用
DateTime.TryParseExact

DateTime result; 
var formatString = "yyyy-MM-ddTHH\\:mm\\:ss.fffZ";
var isValidDate = DateTime.TryParseExact("2016-08-08T18:30:00.000Z", formatString, CultureInfo.InvariantCulture, DateTimeStyles.None, out result);

使用TryPars()e而不是Parse()。您的实际问题是什么?听起来您想使用并传入与所需格式对应的格式字符串。使用TryPars()e而不是Parse())。您的实际问题是什么?听起来您想使用并传入与所需格式相对应的格式字符串。请在try parse exact methodbefore if case?中的try parse exact method中更改日期fomat。检查修改后的代码。为什么tryparse精确?tryparse和trypareexact之间的差异是什么。TryParseExact帮助您为日期字符串指定精确的日期格式。特里帕斯没有这个设施。这有助于使代码独立于执行环境,因为TryParse在不同的执行环境中需要不同的日期字符串try parse exact methodbefore if case?in try parse exact method中的sange date fomat。检查修改后的代码。为什么tryparse精确?tryparse和trypareexact之间的差异是什么。TryParseExact帮助您为日期字符串指定精确的日期格式。特里帕斯没有这个设施。这有助于使代码独立于执行环境,因为TryParse在不同的执行环境中需要不同的日期字符串。如果可以,我可以使用TryParse而不是TryParse-exact吗?@Vispriya-TryParseExact检查字符串是否与格式strint完全匹配。TryParse处理表示日期时间的多个字符串变量。正如你在文章中所说,你想检查一个特定的格式;因此,TryParseExact是否适用于此用例。它起作用了,我可以使用tryparse而不是tryparse-exact吗?@Vispriya-TryParseExact检查字符串是否与格式strint完全匹配。TryParse处理表示日期时间的多个字符串变量。正如你在文章中所说,你想检查一个特定的格式;因此,TryParseExact是否适合此用例。