将DateTime解析为通用时间C#

将DateTime解析为通用时间C#,c#,datetime,.net-3.5,C#,Datetime,.net 3.5,我有一个xml,它可以返回格式为(7/23/2013 4:00pm)的时间。我的问题是:如何向DateTime.ParseExact解释我是在“am”还是在“pm”中?我有这段代码,但它返回一个异常(无法解析字符串) 我已经放置了一个示例字符串(7/23/2013 4:00pm),其中我将“pm”替换为空链“” 非常感谢:)您需要tt格式: string pattern = "MM/dd/yyyy h:mm 'UTC' tt"; DateTime time = DateTime.ParseExa

我有一个xml,它可以返回格式为(7/23/2013 4:00pm)的时间。我的问题是:如何向DateTime.ParseExact解释我是在“am”还是在“pm”中?我有这段代码,但它返回一个异常(无法解析字符串)

我已经放置了一个示例字符串(7/23/2013 4:00pm),其中我将“pm”替换为空链“”


非常感谢:)

您需要
tt
格式:

string pattern = "MM/dd/yyyy h:mm 'UTC' tt";
DateTime time = DateTime.ParseExact(sb.ToString(), pattern, CultureInfo.InvariantCulture,
                                                      DateTimeStyles.AssumeUniversal |
                                                      DateTimeStyles.AdjustToUniversal);

H
在您的模式中,预期时间为24小时。您需要
tt
(如前面的答案所述),并且您必须在您的模式中使用一个小的
h

string pattern = "MM/dd/yyyy h:mm 'UTC' tt";

可以传递数组以覆盖各种格式。我将以下内容用于各种时间输入

var formats = new[] 
    {
        "M/dd/yyyy hh:mm tt",
        "M/dd/yyyy hh:mmtt",
        "M/dd/yyyy h:mm tt",
        "M/dd/yyyy h:mmtt",
        "M/dd/yyyy hhtt",
        "M/dd/yyyy htt",
        "M/dd/yyyy h tt",
        "M/dd/yyyy hh tt"
    };

    var date = "7/23/2013 4:00pm";

    DateTime time = DateTime.ParseExact(date, formats, CultureInfo.InvariantCulture,
                                                  DateTimeStyles.AssumeUniversal |
                                                  DateTimeStyles.AdjustToUniversal);

是的,我想是的,但是日期是什么时候(比如晚上11:15)?H:嗯,这个模式行不通,不是吗?上午和下午的区别是什么(提前感谢:)试着用h代替h。tt必须与am或pm匹配,不是吗?那太棒了:D正是我想要的
var formats = new[] 
    {
        "M/dd/yyyy hh:mm tt",
        "M/dd/yyyy hh:mmtt",
        "M/dd/yyyy h:mm tt",
        "M/dd/yyyy h:mmtt",
        "M/dd/yyyy hhtt",
        "M/dd/yyyy htt",
        "M/dd/yyyy h tt",
        "M/dd/yyyy hh tt"
    };

    var date = "7/23/2013 4:00pm";

    DateTime time = DateTime.ParseExact(date, formats, CultureInfo.InvariantCulture,
                                                  DateTimeStyles.AssumeUniversal |
                                                  DateTimeStyles.AdjustToUniversal);