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

本文关键字:DateTime 转换 单一 格式 字符串 使用 | 更新日期: 2023-09-27 17:59:38

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

铬:2014年4月10日下午1:06:49

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

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

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

 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])

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

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

这适用于所有人:

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