如何从“时间”类型值中仅获取分钟数

时间:2017-02-23 16:50:17

标签: c# winforms

我正在使用Windows窗体中的项目,在这里我必须将日期从Excel文件传输到DataGridView。

我成功完成了,但Excel中的一个单元格是一种“时间”,并且有书写时间,例如"11:35:19 AM""12:56:15 PM" ......

在DataGridView中,它只是复制值,但我需要知道它是哪个分钟或小时。使用此代码,我可以获得此单元格的价值:

dataGridView2.Rows[i].Cells[2].Value

但它给了我{12/30/1899 12:49:40 PM}。这里时间是正确的,但它给了我额外的日期(12/30/1899,这不是用Excel文件写的)。

那么如何从这个值中获得Minutes,Hours或Second?在DataGridView中,我必须添加一个新的Cell并在那里写下Hour。例如:

12:19:20 | 12
10:29:45 | 10
11:39:50 | 11
13:49:10 | 13

3 个答案:

答案 0 :(得分:0)

只需将其存储在日期中,然后阅读所需的值:

Date d = New Date(dataGridView2.Rows[i].Cells[2].Value);
int min = d.Minute();
int hour = d.Hour();
dataGridView2.Rows[i].Cells[3].Value = hour

来源:MSDN - https://msdn.microsoft.com/en-us/library/system.datetime.aspx

答案 1 :(得分:0)

DateTime dt = DateTime.Parse(dataGridView2.Rows[i].Cells[2].Value);
dt.hours; // hours
dt.minutes; // minutes
dt.second; // seconds

答案 2 :(得分:0)

string time =((DateTime)dataGridView2.Rows [i] .Cells [2] .Value).ToString(“hh:mm tt”);

这是你的整个时间部分从日期时间开始提取的方式。