如何将字符串转换为日期? [英] How can I convert string to date?

查看:90
本文介绍了如何将字符串转换为日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我访问了另一个主题,但我无法解决我的问题。

i在我保留的表中有一些字段(reservedID,roomID,UserId,strat_date,end_date)。

i保留了这个表中的一些房间。

当我想预订另一个房间时,我应该检查start_date和end_date,其中有两个日期用户插入了datepicker。

i得到这个(二)来自querystring(字符串类型)的日期,并且我无法将其转换为datetime进行转换。

我的start_date和end_date字段是字符串。

i从db获取它们.. 。







i visited another topic but i couldnt to fix my problem.
i have some fields in my reserved table (reservedID,roomID,UserId,strat_date,end_date).
i reserved some room in this table.
when i want to reserve another room , i should check start_date and end_date with two date which user inserted in datepicker.
i get this (two)dates from querystring(string type) and i cant convert it to datetime for convert.
my start_date and end_date fields are string.
i get them from db ...



protected void Button1_Click(object sender, EventArgs e)
{
    string room_id = Request.QueryString["ri"];
    int room_id2 = Convert.ToInt32(room_id);
    string from = Request.QueryString["from"];
    string to = Request.QueryString["to"];
    string name = TextBox1.Text;
    string email = TextBox2.Text;
    if (!String.IsNullOrEmpty(room_id))
    {
        if (!String.IsNullOrEmpty(from))
        {
            if (!String.IsNullOrEmpty(to))
            {
                if (!String.IsNullOrEmpty(name))
                {
                    if (!String.IsNullOrEmpty(email))
                    {
                        if (new EmailAddressAttribute().IsValid(email))
                        {
                            List<DAL.project.RESERVED> reserved = BLL.project.DataProvider.reserved_room(room_id2);
                            int status = 0;
                            foreach(DAL.project.RESERVED rsd in reserved)
                            {
                                DateTime sd = Convert.ToDateTime(rsd.START_DATE);
                                DateTime ed = Convert.ToDateTime(rsd.END_DATE);
                                if ((sd <= from2 && ed >= from2) || (sd <= to2 && ed >= to2))
                                {
                                    status = 1;
                                    break;
                                }
                            }
                            Label3.Text = Convert.ToString(status);
                        }
                        else
                        {
                            Label3.Text = "ایمیل وارد شده اشتباه است.";
                        }
                    }
                    else
                    {
                        Label3.Text = "پست الکترونیکی را وارد نکرده اید.";
                    }
                }
                else
                {
                    Label3.Text = "نام را وارد نکرده اید.";
                }
            }
            else
            {
                Label3.Text = "تاریخ را وارد نکرده اید.";
                Response.AddHeader("REFRESH", "3;search.aspx");
            }
        }
        else
        {
            Label3.Text = "تاریخ را وارد نکرده اید.";
            Response.AddHeader("REFRESH", "3;search.aspx");
        }
    }
    else
    {
        Label3.Text = "اجازه ی دسترسی به این صفحه را ندارید. بعد از چند ثانیه به صفحه ی جستجو هدایت می شوید.";
        Response.AddHeader("REFRESH", "3;search.aspx");
    }
}





我的尝试:



i尝试了这么多,但我无法转换:

string from = Request.QueryString [from];

string to = Request.QueryString [to];







rsd.strat_date,rsd.end_date < br $> b $ b





到datetime提供比较



What I have tried:

i tried so much but i couldnt convert :
string from = Request.QueryString["from"];
string to = Request.QueryString["to"];

and

rsd.strat_date , rsd.end_date



to datetime for provide compare

推荐答案

我认为
Convert.ToDateTime

不是将字符串转换为DateTime的有效方法。因为如果转换失败就抛出FormatException,所以我强烈建议你使用

will not be an efficient method to convert string into DateTime. Since it Throws FormatException if the Conversion failed, So i Strongly Recommend you to use

DateTime.TryParseExact

,它有内部的异常处理机制,以便它将给出一个返回值来指示转换状态和输出到输出变量。请考虑以下代码:



which has internal Exception handling mechanism So that it will Give a Return value To indicate the Conversion status and the output to the out variable. Consider the following code:

DateTime inDate;
string formatString="MM/dd/yyyy hh:mm:ss";
bool conversionResult = DateTime.TryParseExact(rsd.START_DATE, formatString, CultureInfo.InvariantCulture, DateTimeStyles.None, out inDate)
if(!conversionResult) 
{
  Console.WriteLine("Invalid Input");
}





请注意:formatString和Input的格式应匹配。



Please note : The formatString and the format of the Input should match.


你好,无论你在哪里得到日期,第一个日期转换为字符串然后字符串到日期,你可以转换。

有时你在对象中存储日期然后从对象数据不能直接转换为日期所以首先转换字符串然后转换为数据格式。
Hi wherever you get date, first date convert to string then string to date you can convert.
Some time you stored date in object then from object data can not convert directly into date so first convert string then convert to data format.


这篇关于如何将字符串转换为日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆