【问题标题】:get only hour from datetime从日期时间只得到一个小时
【发布时间】:2013-02-27 07:22:16
【问题描述】:

如何从日期和时间中仅提取小时并将其转换为整数,以便我可以与整数进行比较??

例如

datetime = 2013-02-01 10:24:36.000 即日期和时间数据类型

然后

小时 = 只需要一小时,即 10

然后

比较小时 = Convert.ToInt32(time);

我已经尝试过 item.StartTime 是日期和时间:

var time = String.Format("{HH}", (DateTime)item.StartTime);
var hour = Convert.ToInt32(time);

错误:

Input string was not in a correct format.

【问题讨论】:

  • 设置断点并检查一些变量。您可以使用 (Quick)Watch 查看给定对象(例如 DateTime)具有哪些属性。至于你得到的错误,检查变量“时间”,看看为什么 Convert 似乎认为它的格式不正确。

标签: c# datetime


【解决方案1】:

我想你只是在寻找DateTime.Hour

int hour = item.StartTime.Hour;

...但它的值是 10,而不是 24。(item.StartTime.Minute 会给你 24。)

根据经验,避免字符串转换,除非它们是您想要完成的固有部分。

【讨论】:

  • 对不起,我把它放错了 24 应该是 10
【解决方案2】:

这个怎么样?

DateTime dt = DateTime.Now;
int hour = dt.Hour;

习惯于在 MSDN 文档中查找这些内容是值得的。一旦你习惯了它就很好。对于DateTime 成员的列表,我只需使用 Google System.DateTime 并点击顶部的 MSDN 链接(通常是第一个链接)。

http://msdn.microsoft.com/en-us/library/system.datetime.aspx

【讨论】:

    【解决方案3】:

    如果您想将此日期与另一个日期进行比较,您可能会省心,只需使用DateTime.Compare

    public static int Compare(
        DateTime t1,
        DateTime t2
    )
    

    http://msdn.microsoft.com/en-us/library/system.datetime.compare.aspx

    【讨论】:

      【解决方案4】:

      //单行

      int 时间 = DateTime.Now.Hour;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-21
        • 2018-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多