我尝试了很多转换技术,但总是失败
像: 我有
[btnIN button]
lbltimein.text = dr["column_name"].toString();
[btnout button]
DateTime dt = Convert.ToDateTime(lbltimein.text);
答案 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
}