0
          int MM;
          int DD;
          int YYYY;
          switch(MM)
          {
                case 1:
                   DD = 31;
                   break;
                case 2:
                   DD = 28;
                   LDD = 29;
                   break;
                case 3:
                   DD = 31;
                   break;
                case 4:
                   DD = 30;
                   break;
                case 5:
                   DD = 31;
                   break;
                case 6:
                   DD = 30;
                   break;
                case 7:
                   DD = 31;
                   break;
                case 8:
                   DD = 31;
                   break;
                case 9:
                   DD = 30;
                   break;
                case 10:
                   DD = 31;
                   break;
                case 11:
                   days = 30;
                   break;
                case 12:
                   DD = 31;
                   break;
                default:
                   {
                            Console.WriteLine("Invalid option");
                   }
        }
        if(Date == MM/DD/YYYY)
        string Date = Console.ReadLine();

我正在尝试编写一个代码,该代码将接受日期作为字符串并且仅以这种格式 mm/dd/yyyy 并且时间必须仅以这种格式接受 10:00AM 通过使用 DateTime 我得到了这种格式的时间 10: 00:00,我不想要的时、分、秒格式。

我不想使用try catch,异常。

4

4 回答 4

5

使用 DateTime.ParseExact 并按照以下指南编写格式字符串:

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2013-08-03T15:56:15.907 回答
0

您可以使用 DateTime.ParseExact 方法并在其第二个参数中编写格式定义。

于 2013-08-03T15:54:32.820 回答
0

我建议DateTime.TryParseExact,这将检查字符串是否采用您想要的格式,如果不是则返回 false ,如果是则返回 true 并填充您的日期。

于 2013-08-03T15:59:12.853 回答
0

您应该使用DateTime.TryParseExact,因为此方法不会为无效日期引发异常:

DateTime parsed;
var input = "08/03/2013 08:30AM";
if (DateTime.TryParseExact(input, "MM/dd/yyyy hh:mmtt", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed))
    Console.WriteLine("ok");
else
    Console.WriteLine("not ok");
于 2013-08-03T16:01:38.903 回答