如何将label.text=dr[quot;column';].tostring转换为datetime

本文关键字:column tostring datetime 转换 quot label text dr | 更新日期: 2023-09-27 17:54:01

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

喜欢:我在

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

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

如何将label.text=dr[quot;column';].tostring转换为datetime

您需要知道用户输入Date值的格式

例如,如果格式i 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;
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
}