【问题标题】:DateTime Format like HH:mm 24 Hours without AM/PM日期时间格式,例如 HH:mm 24 小时,无 AM/PM
【发布时间】:2010-09-26 12:50:16
【问题描述】:

我在这里搜索有关将“16:20”之类的字符串转换为 DateTime 类型而不丢失格式的信息,我说我不想添加 dd/MM/yyy 或秒或 AM/PM,因为 db 只是接受这个格式。

我还尝试过文化

提前致谢

【问题讨论】:

    标签: c# datetime formatting


    【解决方案1】:

    只需给你的 dateTime 一个日期格式。

    string DateFormat = "yyyy MM d " 这将为您提供年月日。继续后; string DateFormat = "yyyy MM d HH:mm:ss " 在这里 Capital H 将为您提供24 hours time format 和小写"h" will give you the 12 hours time 格式...

    当您将日期格式作为字符串提供时,您可以对日期和时间做任何您想做的事情。

    string DateFormat = "yyyyMMdHHmmss";
    string date = DateTime.Now.ToStrign(DateFormat);
    

    Console.writeline(DateTime.Now.ToStrign(DateFormat));
    

    输出:

    20120823132544
    

    【讨论】:

    • +1 for "HH will give you 24 hours format" 从来不知道,谢谢!
    【解决方案2】:

    DateTime.Now.ToString("hh:mm") - 如果是 C#。

    哦。只读取标题。

    DateTime dt = new DateTime(2008, 12, 11, Convert.ToInt32("16"), Convert.ToInt32("32"), 0);
    

    【讨论】:

    • 24 小时时间的大写 h
    • 但这会将值转换为字符串,对吗?我想将它设置为日期时间类型,因为我使用一个包含该值属性的类
    • 我从gridview中获取值这样:string hour = ((Label)selectedRow.Cells[0].FindControl("lblHorario")).Text;
    • 或 DateTime 小时 = Convert.ToDateTime(((Label)selectedRow.Cells[0].FindControl("lblHorario")).Text);
    【解决方案3】:

    所有 DateTime 对象都必须有日期和时间。

    如果您只需要时间,请使用 TimeSpan:

    TimeSpan span = TimeSpan.Parse("16:20");
    

    如果你想要一个 DateTime,将该时间添加到最小值:

    TimeSpan span = TimeSpan.Parse("16.20");
    DateTime dt = DateTime.MinValue.Add(span);
    // will get you 1/1/1900 4:20 PM which can be formatted with .ToString("HH:mm") for 24 hour formatting
    

    【讨论】:

    • 我会试试这个,因为我看到其他使用 C++ 的开发人员正在按照您指定的方式存储数据。
    • 可以删除最后格式的 AM/PM 吗?并使其 24 小时,提前谢谢
    • DateTime 对象不以特定格式存储日期。您可以随心所欲地显示它们。 dt.ToString("HH:mm") 将为您提供 24 小时表示
    • 第二个TimeSpan对象例子不是100%,应该有一个“:”而不是一个“.” - TimeSpan span = TimeSpan.Parse("16:20");
    【解决方案4】:
    DateTime.Parse("16:20")
    

    【讨论】:

    • 我用你的代码 sn-p 得到这个:11/12/2008 04:20:00 p.m.
    • 我仍然得到用户代码未处理的 FormatException,顺便说一句,现在我在服务器端和客户端都设置了 DateTime,那么为什么仍然抛出这个异常?
    【解决方案5】:

    由于您没有规定您使用的是哪个 DBMS,因此很难知道哪个答案会对您有所帮助。如果您使用 IBM Informix Dynamic Server,您只需使用数据类型“DATETIME HOUR TO MINUTE”,它将以 24 小时制记录值。

    【讨论】:

    • 但在代码端我使用 linqtosql,所以我必须将所有需要的数据作为 DB 类型传递。
    【解决方案6】:

    “丢失格式”是什么意思。

    如果将其转换为 DateTime 类型,则 DateTime 对象将具有 dd/mm/yy 和其他属性。根据您打算如何使用该对象,您可以“恢复”您的原始设置,方法是像这样格式化字符串输出:DT.ToString("HH:mm");

    【讨论】:

      【解决方案7】:

      我想解决你的这部分问题:

      不丢失格式

      数据库通常会以标准的通用格式存储所有日期时间值,这种格式甚至不是人类可读的。如果您使用日期时间列,原始格式将被破坏。

      但是,当您检索该值时,您会将其转换回您想要的任何格式。如果你想要HH:mm,你可以得到它。

      【讨论】:

      • 我解决了这个问题,所以 Joel 评论中的“没有松散”部分现在变得不那么有意义了。
      猜你喜欢
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      相关资源
      最近更新 更多