日期格式转换 c#
本文关键字:转换 格式 日期 | 更新日期: 2023-09-27 18:31:20
>伙计们,我有一个字符串,日期格式为 dd/mm/YYYY。
但是我需要将其用作日期时间选择器控件。
我无法将值分配给日期时间选择器,我尝试了
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_);
它给了我一个错误,说,格式显示是最大日期和最小日期之间。
请帮忙。
如果此行运行DateTime expiry_ = ((DateTime)cmd.ExecuteScalar());
没有错误,则您已经拥有日期时间对象。所以你可以直接把它设置为
tpPasswordExpiry.Value =expiry_;
但是,如果您将日期时间存储为数据库中的字符串,则上述行将失败
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;
}
我们已经有:
DateTime expiry = ((DateTime)cmd.ExecuteScalar());
所以:我们知道价值是一个DateTime
。DateTimePicker
控件的 .Value
属性是一个DateTime
,所以这里的正确语法是:
dtpPasswordExpiry.Value = expiry;
根据错误消息,唯一离开的是 MinDate
和MaxDate
.我怀疑您需要更改这两个属性的值,以便您的expiry
是合法值,不在MinDate
范围之内 - MaxDate
.如果不确定,只需打印出 expiry
、 dtpPasswordExpiry.MinDate
和 dtpPasswordExpiry.MaxDate
的值。