在DateTime类型中读取字符串值“yyyyMMddHHmmss”

时间:2015-12-01 16:19:52

标签: c# datetime

这是我的情况。

我有一个方法ISO8601DateTime_Local(DateTime dto)

我无法更改其参数数据类型,因为它会影响整个解决方案。

现在我需要更改2014-03-11T14:10:46+11:00的输入日期 到20140311141046+1100

我使用以下方法完成了它:

public string test1() {
        var str = "2014-03-11T14:10:46+11:00";
        var dto = DateTimeOffset.Parse(str);
        return dto.ToString("yyyyMMddHHmmssK");
}

现在我必须在ISO8601DateTime_Local()中将此test1作为参数传递 像

DateTime dt = ISO8601DateTime_Local(test1());

请建议。

1 个答案:

答案 0 :(得分:0)

您可以将DateTime.ParseExact方法与格式字符串一起使用:

DateTime dt = ISO8601DateTime_Local(DateTime.ParseExact(test1(), "yyyyMMddHHmmssK", CultureInfo.InvariantCulture, DateTimeStyles.None));

(也许你想使用DateTime.TryParseExact来提高稳定性)

我不确定DateTimeStyles参数,因此请检查msdn是否有比DateTimeStyles.None更合适的值(特别是DateTimeStyles.AdjustToUniversal可能感兴趣)。