在c#中将字符串转换为日期时间



我正在尝试将字符串转换为日期时间几个小时了,字符串看起来像这样

"20140519-140324",我知道它在UTC

我已经试过了

DateTime ourDateTime;
bool success = DateTime.TryParseExact(Date, "yyyy-MM-dd-HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out ourDateTime);
StartTime.Text = ourDateTime.ToString("g");

和this

DateTime ourDateTime= DateTime.ParseExact(Date, "yyyy-MM-dd-HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
StartTime.Text = ourDateTime.ToString("g");

但是这些都不起作用。我做错了什么?

From DateTime.TryParseExact method

将日期和时间的指定字符串表示形式转换为其DateTime等价的。字符串表示的格式必须

在你的例子中,它们不是。使用yyyyMMdd-HHmmss自定义格式,而不是与您的字符串完全匹配。

下面是一个关于LINQPad的例子;

string s = "20140519-140324";
DateTime dt;
if(DateTime.TryParseExact(s, "yyyyMMdd-HHmmss", CultureInfo.InvariantCulture,
                          DateTimeStyles.AdjustToUniversal, out dt))
{
    dt.Dump();
}

这里a demonstration

你的DateTime.ParseExact的例子也不会工作,因为同样的原因。

查看更多信息;

  • 自定义日期和时间格式字符串

您在TryParseExact方法中使用了错误的格式。format参数应该是输入字符串格式的指示符。因此,您需要这样做:

DateTime ourDateTime;
bool success = DateTime.TryParseExact(Date, "yyyyMMdd-HHmmss", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out ourDateTime);
if(success) {
    StartTime.Text = ourDateTime.ToString("g");
}

相关内容

  • 没有找到相关文章

最新更新