using System;
using System.Globalization;
namespace ConsoleApplication20
{
class Program
{
static void Main(string[] args)
{
string[] formats ={
"MM/dd/yyyy HH:mm:ss tt",
"MM/dd/yyyy HH:mm:ss",
"MM/dd/yyyy H:mm:ss tt",
"MM/dd/yyyy H:mm:ss",
"M/dd/yyyy HH:mm:ss tt",
"M/dd/yyyy HH:mm:ss",
"M/dd/yyyy H:mm:ss tt",
"M/dd/yyyy H:mm:ss",
"MM/d/yyyy HH:mm:ss tt",
"MM/d/yyyy HH:mm:ss",
"MM/d/yyyy H:mm:ss tt",
"MM/d/yyyy H:mm:ss",
"M/d/yyyy HH:mm:ss tt",
"M/d/yyyy HH:mm:ss",
"M/d/yyyy H:mm:ss tt",
"M/d/yyyy H:mm:ss"
};
string date1 = "11/08/2008 4:00:49";
DateTime result;
if (DateTime.TryParseExact(date1, formats,
new CultureInfo("en-US"),
DateTimeStyles.None,
out result))
{
DateTime startTime = result;
}
Console.Write(startTime);
}
}
}
Run Code Online (Sandbox Code Playgroud)
请解释我..为什么总是if语句返回false ..
Thanx寻求帮助和支持,Rik,Phillip,Joel和Kent以及其他所有人..
Ken*_*art 20
您已将startTime声明在要从中打印出来的不同块的范围内.尝试更改为:
if (DateTime.TryParseExact(date1, formats,
new CultureInfo("en-US"),
DateTimeStyles.None,
out result))
{
DateTime startTime = result;
Console.Write(startTime);
}
Run Code Online (Sandbox Code Playgroud)
你应该声明(并初始化)
DateTime startTime
Run Code Online (Sandbox Code Playgroud)
在IF声明之外,或
Console.WriteLine(startTime)
Run Code Online (Sandbox Code Playgroud)
在IF声明中.
您可以尝试将DateTimeStyles参数的值更改为AssumeLocal或AssumeUniversal(根据您的需要),以允许缺少时区规范.
Kent Boggart确定了您的编译器错误,但我注意到您的格式存在另一个问题.您正在混合使用不同月,日,小时和上午/下午格式的组合,但您只对小时格式使用大写"H".大写'H'表示使用24小时时间,而小写'h'表示使用12小时时间.因此,对于没有'tt'选项的样本,您应该只有大写的'H',如下所示:
string[] formats ={
"MM/dd/yyyy hh:mm:ss tt",
"MM/dd/yyyy HH:mm:ss",
....
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |