如何转换label.text = dr [“column']。tostring to datetime?

时间:2014-03-27 17:16:57

标签: c#

我尝试了很多转换技术,但总是失败

像: 我有

[btnIN button]
lbltimein.text = dr["column_name"].toString();


[btnout button]
DateTime dt = Convert.ToDateTime(lbltimein.text);

2 个答案:

答案 0 :(得分:1)

您需要知道用户输入Date

的格式

例如,如果格式为dd-MM-yyyy

试试这个:

DateTime dt = DateTime.ParseExact(lbltimein.Text,"dd-MM-yyyy",
       System.Globalization.CultureInfo.InvariantCulture) ;
如果您有HH:mm:ss格式的时间,请从评论中

编辑 您可以根据分号拆分它并将其分配给TimeSpan构造函数以获得总小时数。

var time = lbltimein.Text.Split(':');
TimeSpan time=new TimeSpan(Convert.ToInt32(time[0]),
                             Convert.ToInt32(time[1]),Convert.ToInt32(time[2]));
double totalHours = time.TotalHours;

编辑2:如果您的格式如下:08:00:00 AM

试试这个:

var inputtime = lbltimein.Text;
TimeSpan time = new TimeSpan(Convert.ToInt32(inputtime.Substring(0,2)),
                            Convert.ToInt32(inputtime.Substring(3, 2)), 
                            Convert.ToInt32(inputtime.Substring(6, 2)));
double totalHours = time.TotalHours;

答案 1 :(得分:0)

DateTime.Parse(dr["column_name"].ToString()) 
如果您的字符串是有效的DateTime格式,

应该可以解决问题。

如果您不确定格式,还可以尝试此操作来确定您的字符串是否可以转换。我更喜欢这种方法,因为它让你有机会在没有try / catch块的情况下处理错误的输入。

DateTime OutputTime = new DateTime();
if(DateTime.TryParse(dr["column_name"].ToString(),out OutputTime))
{
 ///manipulate output datetime here if successful
}
else
{
///figure out why the conversion failed / handle error
}