transdata[2]是是我接收的string类型的数据,里面存的是一个字符串,比如“2014-10-10 9:23”现在的问题是,在时间中如果那一位是零的话,直接是空,也就是"2014-10-10 "所以如果是00:00分的话把这个时间存入数据库就只有年月,没有后面的时间,我想判断如果这个字符串中后面的时间是空的,就转为“2014-10-10 00:00",这个应该怎么写?求大神帮助
至少三种处理办法。
第一种:直接字符串处理。 如果transdata[index].Trim().Contains(' ') 为真,直接Trim然后加上" 00:00"
第二种:使用DateTime做两次转换。先用DateTime.Parse或TryParse将字符串转DateTime,然后ToString("yyyy-MM-dd hh:mm")。
第三种:使用正则表达式直接判断及替换。
个人推荐第二种,因为DateTime可以保证你的日期字符串是真实的数据,不会出现2月31号这样不合理的东西。无法解析的非法日期会报异常。
foreach(string strDate in transdata)两个办法都可以
追问我那个是如果是空的话,后面时间中的冒号也没有了,你这个好像不太合适,能再帮我想想么,谢谢
追答没有冒号就代表 没有后面的 时间和分钟啊
if (time.IndexOf(":") == -1)这个上面错了 应该是等于
你去除空格后 判断长度也可以啊
追问不好意思,刚刚有点儿变化,我先没太弄清,这个里面那个冒号是还在的,我先按照你上面那个弄了的话,最后出来的结果是在冒号后面加上了00:00,也就是“2014-10-10 :00:00”原来的那个冒号还在,这应该怎么改,谢谢
追答那就先删除前后空白 判断最后一个是不是冒号
string time = transdata[2].Trim();