日期格式转换c#

时间:2013-09-13 07:06:09

标签: c# asp.net datetime

伙计我有一个日期格式为dd / mm / YYYY的字符串。

但是我需要使用datetimepicker控件。

我无法将值分配给datetimepicker,我试着将其作为

string exp = "SELECT UserPwdExpiry FROM " + MainForm.schema + "Adm.SysUser WHERE USerId ='" + cmbUserID.Text + "'";

cmd = ccs.CreateCommand();
ccs.Open();
cmd.CommandText = exp;
DateTime expiry_ = ((DateTime)cmd.ExecuteScalar());
//string _expiry_= expiry_.ToShortDateString(); 
ccs.Close();

在这里分配

dtpPasswordExpiry.Value = Convert.ToDateTime(_expiry_); 

它给我一个错误说,格式化显示在MaxDate和MinDate之间。

请帮助。

2 个答案:

答案 0 :(得分:0)

如果DateTime expiry_ = ((DateTime)cmd.ExecuteScalar());此行没有错误,则您已经拥有Datetime对象。所以你可以直接将其设置为

tpPasswordExpiry.Value =expiry_;

但如果将datetime作为字符串存储在数据库中,那么上面的行将失败

string _User_modify= (string)cmd.ExecuteScalar();

DateTime dt;
if(DateTime.TryParseExact(_User_modify, 
                       "dd/MM/YYYY", 
                       CultureInfo.InvariantCulture, 
                       DateTimeStyles.None, 
                       out dt))
{
    tpPasswordExpiry.Value =dt;
}

答案 1 :(得分:0)

我们已经拥有:

DateTime expiry = ((DateTime)cmd.ExecuteScalar());

所以:我们知道该值是DateTimeDateTimePicker控件的.Value属性 DateTime,因此这里的正确语法为:

dtpPasswordExpiry.Value = expiry;

根据错误消息,唯一遗留的是MinDateMaxDate。我怀疑您需要更改这两个属性的值,以使expiry的合法值不在MinDate - MaxDate范围之外。如果不确定,只需打印出expirydtpPasswordExpiry.MinDatedtpPasswordExpiry.MaxDate的值。