字符串转成日期时间的问题

shenlang 2007-12-05 04:51:37
给定一个时间串和它对应的格式,怎么转成一个DateTime对象
如"1977-02-10" -- "yyyy-MM-dd"
"03-31-2004 15:30:27" -- "MM-dd-yyyy HH:mm:ss"
...全文
271 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
root_ 2007-12-05
  • 打赏
  • 举报
回复
伴水不是已经告诉你怎么做了吗,就差自己写成方法了

private DateTime StrToDateTime(string src, string format)
{
DateTime dt;
if (DateTime.TryParseExact(src, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
return dt;
else
return DateTime.MinValue;
}
//调用
DateTime test = StrToDateTime(textBox1.Text, textBox2.Text);
if(test != DateTime.MinValue)
MessageBox.Show(test.ToString("yyyy-MM-dd HH:mm:ss"));
wuyi8808 2007-12-05
  • 打赏
  • 举报
回复
System.DateTime.Parse()方法可以适用于用户输入的各种日期时间格式。
shenlang 2007-12-05
  • 打赏
  • 举报
回复
请大家先不要回避问题,我们的程序中就是要提供给用户这种功能,因为用户的数据是早就有了的(存在于文件中)
请各位再提供好办法,我再加分
zhangjjhua 2007-12-05
  • 打赏
  • 举报
回复
是的, DataTime dt=ConvertToDateTime(str)

用MS的控件也行,让用户选择,以免老错...
xh831213 2007-12-05
  • 打赏
  • 举报
回复
我觉得吧,既然时间要转换格式,还不如限制用户输入呢
找个比较好的JS的时间选择控件,或者就用MS的也行,让客户选择时间输入,不要手书
这样时间的格式就固定了,也不用费尽去想怎么转换了,而且选择输入比手动输入也方便啊
shenlang 2007-12-05
  • 打赏
  • 举报
回复
时间串和格式串都是由用户输入的,我事先并不知道它们是什么样的顺序、分隔符是什么,如果采用分割重组,好象是非常麻烦的事情
哪位还有好办法吗?
jetxia 2007-12-05
  • 打赏
  • 举报
回复
使用DateTime.TryParse或是DateTime.TryParseExact来转换。
王集鹄 2007-12-05
  • 打赏
  • 举报
回复
DateTime有TryParseExact()或ParseExact()方法
string s = "20070419090909";
DateTime vDateTime;
if (DateTime.TryParseExact(s, "yyyyMMddHHmmss", null,
System.Globalization.DateTimeStyles.None, out vDateTime))
MessageBox.Show(vDateTime.ToString());
else MessageBox.Show("输入错误");
lyg1166 2007-12-05
  • 打赏
  • 举报
回复
如果是从数据库中查询出来的可以在查询时通过To_date()涵数转换.
honey52570 2007-12-05
  • 打赏
  • 举报
回复
强制转换

xh831213 2007-12-05
  • 打赏
  • 举报
回复
同意楼上的建议,现转化试下
或者运用split分割字符串,然后再重新组合成时间
symbol441 2007-12-05
  • 打赏
  • 举报
回复

参考,如果是标准的时候格式,是可以根据字符生成时间或是日期的.采用DataTime.Parse()方法

string tiString = "1977-02-10";
DateTime dt1 = DateTime.Parse(tiString);
//MessageBox.Show(dt1.Day.ToString()+"-"+dt1.Year.ToString()+"-"+dt1.Month.ToString());

wei023 2007-12-05
  • 打赏
  • 举报
回复
Convert.ToDateTime();
如果不行,就用楼上的办法吧.
cellblue 2007-12-05
  • 打赏
  • 举报
回复
我上次作的干脆就分割,然后再组成我们国内的标准格式

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧