我正面临有关类型转换的问题。值来自数据库存储过程。我将这个值存储在这个隐藏的字段中。
<asp:HiddenField id="hfScheduleDate" runat="server" value='<%#Eval("ScheduleDate") %>' />
并尝试以这种方式转换它。
DateTime Date = Convert.ToDateTime(hfScheduleDate.Value);
现在它正在例外。
字符串未被识别为有效的DateTime。
答案 0 :(得分:0)
像这样做有点“危险”。有几个选择:
答案 1 :(得分:0)
您必须像这样提供CultureInfo转换方法
string Date = Convert.ToDateTime("01/02/09",
new CultureInfo("en-US")).ToString("yyyy-MMM-dd");
//Results 2009-Jan-02
string Date = Convert.ToDateTime("01/02/09",
new CultureInfo("ru-RU")).ToString("yyyy-MMM-dd");
//Results 2009-Feb-01
string Date = Convert.ToDateTime("01/02/09",
new CultureInfo("ja-JP")).ToString("yyyy-MMM-dd");
//Results 2001-Feb-09
您可以搜索许多其他格式。
答案 2 :(得分:0)
Convert.ToDateTime
方法默认情况下使用DateTime.Parse
设置设置 。
这意味着(我假设你的05是你的月份),你的CurrentCulture
没有CurrentCulture
一个standard date and time format。 1
作为替代方案,您可以使用custom date and time formatting提供具有yyyy/MM/dd HH:mm:ss
作为/
和DateSeparator
作为:
的文化的精确格式/
format specifier 1}}(如果你目前的文化没有这些)
TimeSeparator
1:由于{{3}}是自定义日期和时间格式的日期分隔符,因此默认使用InvariantCulture
DateTime Date = DateTime.ParseExact(hfScheduleDate.Value, "yyyy/MM/dd HH:mm:ss",
CultureInfo.InvariantCulture);
。子>