我在这里搜索关于将类似“16:20”的字符串转换为DateTime类型而不会丢失格式,我说我不想添加dd / MM / yyy或秒或AM / PM,因为db只是接受这个格式。
我尝试过Cultures
先谢谢
答案 0 :(得分:17)
只需为dateTime提供日期格式。
string DateFormat = "yyyy MM d "
这将为您提供年月和日。继续之后;
string DateFormat = "yyyy MM d HH:mm:ss "
此处 Capital H 会为您提供24 hours time format
和lowerCase "h" will give you the 12 hours time
格式......
当您将Dateformat作为字符串提供时,您可以使用日期和时间执行任何操作。
string DateFormat = "yyyyMMdHHmmss";
string date = DateTime.Now.ToStrign(DateFormat);
OR
Console.writeline(DateTime.Now.ToStrign(DateFormat));
<强>输出:强>
20120823132544
答案 1 :(得分:13)
所有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
答案 2 :(得分:3)
DateTime.Now.ToString(“hh:mm”) - 如果它是C#。
喔。只读标题。
DateTime dt = new DateTime(2008, 12, 11, Convert.ToInt32("16"), Convert.ToInt32("32"), 0);
答案 3 :(得分:1)
“失去格式”是什么意思。
如果将其转换为DateTime类型,则DateTime对象将具有dd / mm / yy和其他属性。根据您打算如何使用该对象,您可以通过格式化字符串输出来“恢复”原始设置:DT.ToString(“HH:mm”);
答案 4 :(得分:1)
由于您没有规定您使用的是哪个DBMS,因此很难知道哪个答案会对您有所帮助。如果您使用IBM Informix Dynamic Server,您只需使用数据类型'DATETIME HOUR TO MINUTE',它将在24小时制中记录值。
答案 5 :(得分:1)
DateTime.Parse("16:20")
答案 6 :(得分:0)
我想解决你问题的这一部分:
不会丢失格式
数据库通常会以标准的通用格式存储所有日期时间值,这些格式甚至不是人类可读的。如果使用日期时间列,则会破坏原始格式。
但是,当您检索该值时,会将其转换回您想要的任何格式。如果你想要HH:mm
,你可以得到它。