使用C#将不同的DateTime字符串转换为单个DateTime格式

时间:2014-04-23 08:39:43

标签: c# datetime datetime-format

我创建了一个安装在所有主流浏览器中的浏览器扩展程序。安装完成后,我将从相关浏览器到我的应用程序获取日期时间,我的问题是日期时间格式对于不同的浏览器是不同的,如下所示

Chrome: 4/10/2014 1:06:49 PM

Firefox和IE: 2014年4月10日星期四下午1:14:00

Safari中: 2014年4月23日星期三下午14:00:17

我需要将所有不同字符串格式的日期时间转换为单日期时间格式,目前我使用的是以下代码,它适用于chrome datetime格式,但不适用于剩余格式

 public bool CompareInsertTimes(string strPluginDatetime)
    {
DateTime pluginModifyDate;            
 pluginModifyDate = DateTime.ParseExact(strPluginDatetime, "M/d/yyyy h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);

“strPluginDatetime”是来自chrome,firefox,IE,safari的日期时间字符串 然后我使用以下格式将日期时间格式与我的数据库日期时间进行比较

Convert.ToDateTime(pluginModifyDate.GetDateTimeFormats()[28]) < Convert.ToDateTime(urlModifydateinDB.GetDateTimeFormats()[28])

那么,是否有可能将不同的字符串格式日期时间转换为单个日期时间格式

1 个答案:

答案 0 :(得分:-1)

这适用于所有人:

string[] dateStrings = { "4/10/2014 1:06:49 PM", "Thursday, April 10, 2014 1:14:00 PM", "Wednesday, April 23, 2014 14:00:17 PM"};
string[] formats = { "M/d/yyyy h:mm:ss tt", "dddd, MMMM dd, yyyy h:mm:ss tt", "dddd, MMMM dd, yyyy HH:mm:ss tt" };
DateTime[] dates = new DateTime[dateStrings.Length];
for(int i = 0; i < dateStrings.Length; i++)
{
    DateTime dt;
    bool ok = DateTime.TryParseExact(dateStrings[i], formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);
    if (ok) dates[i] = dt;
}

测试:

Console.Write(string.Join(", ", dates));

输出:

10.04.2014 13:06:49, 10.04.2014 13:14:00, 23.04.2014 14:00:17