C# 日期时间格式,如HH:mm,24小时不带AM/PM

C# 日期时间格式,如HH:mm,24小时不带AM/PM,c#,datetime,formatting,C#,Datetime,Formatting,我在这里搜索关于在不丢失格式的情况下将“16:20”这样的字符串转换为DateTime类型,我说我不想添加dd/MM/yyy或seconds或AM/PM,因为db只接受这种格式 我尝试过文化 提前感谢DateTime.Now.ToString(“hh:mm”)-如果是C# 哦。只读取标题 DateTime dt = new DateTime(2008, 12, 11, Convert.ToInt32("16"), Convert.ToInt32("32"), 0); 我想谈谈你问题的这一部分:

我在这里搜索关于在不丢失格式的情况下将“16:20”这样的字符串转换为DateTime类型,我说我不想添加dd/MM/yyy或seconds或AM/PM,因为db只接受这种格式

我尝试过文化

提前感谢

DateTime.Now.ToString(“hh:mm”)-如果是C#

哦。只读取标题

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

我想谈谈你问题的这一部分:

在不丢失格式的情况下

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

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

你说的“丢失格式”是什么意思


如果将其转换为DateTime类型,则DateTime对象将具有dd/mm/yy和其他属性。根据您计划如何使用对象,您可以通过如下格式化字符串输出来“恢复”原始设置:DT.ToString(“HH:mm”)

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

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

DateTime.Parse("16:20")
如果只需要时间,请使用TimeSpan:

TimeSpan span = TimeSpan.Parse("16:20");
如果需要日期时间,请将该时间添加到最小值:

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

只需给dateTime指定一个日期格式

string DateFormat=“yyyy-MM-d”
这将为您提供年、月、日。在继续之后;
string DateFormat=“yyyy-MM d HH:MM:ss”
在这里,大写字母H将为您提供
24小时时间格式
,小写字母
“H”将为您提供12小时时间格式
格式

当您以字符串形式提供Dateformat时,您可以对日期和时间执行任何操作

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

输出:

20120823132544

我修正了这个问题,所以Joel评论中的“with out loose”部分现在就没什么意义了。大写h表示24小时时间,但这会将值转换为字符串,对吗?我想将其设置为datetime类型,因为我使用的类包含此值的属性。我通过以下方式从gridview获取该值:string hour=((标签)selectedRow.Cells[0]。FindControl(“lblOrario”))。Text;或DateTime hour=Convert.ToDateTime(((标签)selectedRow.Cells[0].FindControl(“lblHorario”).Text);我从你的代码片段中得到了这个信息:11/12/2008 04:20:00 p.m.我仍然得到FormatException,未经用户代码处理,顺便说一句,现在我在服务器端和客户端都设置了DateTime,那么为什么仍然要处理这个异常呢?但是在代码端我使用linqtosql,所以我必须将所有需要的数据作为DB类型传递。我将尝试这个,因为我看到,其他开发者谁工作的C++是存储数据,如你指定。有可能删除AM/PM在最后的格式?由于AdvancedDateTime对象没有以特定格式存储日期,所以它可以24小时工作。您可以随意显示它们。dt.ToString(“HH:mm”)将获得24小时表示。第二个TimeSpan对象示例不是100%,应该有“:”而不是“.”-TimeSpan=TimeSpan.Parse(“16:20”)+1为“HH将为您提供24小时格式”从不知道这一点,谢谢!
20120823132544