将字符串转换为具有12小时格式的日期时间格式

本文关键字:格式 日期 时间 12小时 字符串 转换 | 更新日期: 2023-09-27 18:10:41

我在SQL server数据库中有一个字段类型DateTime。我正在开发一个web服务来获取日期和时间。

数据库里的日期格式为4/14/2013 10:10:01 PM。

现在,我有一个webmethod如下:

public string GetdataJson(string lastdate)
        {
            DateTime myDateTime = DateTime.Parse(lastdate);

            string getvalue = "select * from tblfameface where last_updated >='" + myDateTime  + "'";
            con1 = new SqlConnection(conString1);
            con1.Open();
            SqlCommand cmd = new SqlCommand(getvalue, con1);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt1 = new DataTable();
            da.Fill(dt1);
            string jsonString = JsonConvert.SerializeObject(dt1);
            String finalString = "{'"Records'":";
            finalString += jsonString;
            finalString += "}";
            return finalString;
        }

但是这段代码给了我一个字符串未被识别为有效日期时间的错误。我如何将字符串转换为日期时间格式,如4/14/2013 10:10:01 PM??的帮助!

将字符串转换为具有12小时格式的日期时间格式

如果是12小时制则使用小写hh,如果是24小时制则使用大写hh

DateTime formatted =Covert.ToDateTime( lastdate.ToString("dd/MM/yyyy hh:mm:ss.fff",
                                      CultureInfo.InvariantCulture));

如果要使用12小时制时钟,请在格式字符串中使用tt来生成AM/PM指示符。

在您的格式字符串中使用ttPM/AM部分。下面是代码:

 DateTime dateTime = 
    DateTime.ParseExact("4/14/2013 10:10:01 PM", 
                        "M/dd/yyyy hh:mm:ss tt",
                        System.Globalization.CultureInfo.InvariantCulture);

DateTime result = DateTime.Parse("04/14/2013 10:10:01 PM");

你确定你得到了正确的字符串吗?

试试这个:

string getvalue = "select * from tblfameface where
     last_updated >= Convert(DateTime, '" + myDateTime  + "')";

或者这取决于你的SQL数据类型列last_updated

string getvalue = "select * from tblfameface where
     last_updated >= Convert(DateTime2(7), '" + myDateTime  + "')";

使用此代码

DateTime.ParseExact(yourString, "MM/dd/yyyy hh:mm:ss tt");

将查询行替换为

string getvalue = "select * from tblfameface where CAST(last_updated AS 
DATETIME)>='" + myDateTime.ToString("dd/MM/yyyy hh:mm:ss tt")  + "'";