首页 新闻 会员 周边

C#日期字符串转换问题。

0
悬赏园豆:5 [已解决问题] 解决于 2017-12-12 15:52

请问下大家是怎么处理类似

"2017/12/11/周一"这种格式的字符串为DateTime类型的;

Convert.ToDateTime();这个方法只能转换"YYYY-mm-DD HH-MM-ss"这种格式。

问题补充:

是从数据库里取出来的数据,带着周一,周二这种,而我又要判断日期是否大于某个日期。

.NET码农仔的主页 .NET码农仔 | 初学一级 | 园豆:158
提问于:2017-12-11 15:25
< >
分享
最佳答案
0

非显示数据尽量不让这种事发生 —— 中间或存储一律long or int(timestamp时选择);用字符串记时间的如果不是做爬取的,那是相当不专业的。至于显示,ymd等等,成员及格式化都封装的很好了,想怎么显示就怎么显示。

收获园豆:5
花飘水流兮 | 专家六级 |园豆:13560 | 2017-12-11 15:30

数据库是oracle,数据类型是Date,从数据库取出来的格式就是这样。

.NET码农仔 | 园豆:158 (初学一级) | 2017-12-11 15:56

@.NET小码农: 数据库存储可以说就是long或者int之类的整形(定长),不然你想想干嘛要搞个类型,很明显不可能用char*来存储,不利于计算更不利于存储(费时费事费空间);你所谓的DateTime是程序转化的而已,而且DateTime的基础是long(Ticks),你可以看到有基于这个的构造函数。为什么我强调timestamp,因为目前几乎所有的计算机都认这个,不认也很容易转换,因为整形计算是芯片最最基础的指令。如果整个环节的都是可控的,你应当恰当使用整形。

花飘水流兮 | 园豆:13560 (专家六级) | 2017-12-11 16:07

@花飘水流兮: 谢谢啦,问题在于我PLSQL和本地计算机的日期显示格式没设置好,导致时间格式自动转换为"yyyy/mm/dd/ddd"这种带着星期格式的字符串。

.NET码农仔 | 园豆:158 (初学一级) | 2017-12-12 15:49
其他回答(4)
0
 Convert.ToDateTime(datetime).ToString("yyyy-MM-dd");
大楚打码人 | 园豆:4313 (老鸟四级) | 2017-12-11 15:29

谢谢哈,这个我知道。

支持(0) 反对(0) .NET码农仔 | 园豆:158 (初学一级) | 2017-12-12 15:49
0

string dateString = "20161010";

DateTime dt = DateTime.ParseExact(dateString, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);

--------yyyyMMdd可以自定义格式

字符串截取后转为DateTime类型,再比较大小

liangzai1996 | 园豆:135 (初学一级) | 2017-12-11 15:30

z这个我知道,问题在于,取出来的数据带着周一,周二这些。

支持(0) 反对(0) .NET码农仔 | 园豆:158 (初学一级) | 2017-12-11 15:57
0

用楼上所说的 DateTime.ParseExact 指定格式转化啊,

既然你说数据带着周一,周二,那么你存这个datatime的时候也指定格式啊,

用这个ParseExact 方法的目的不就是你知道他的格式,所以这个格式转换吗

猝不及防 | 园豆:2781 (老鸟四级) | 2017-12-11 16:41

k谢谢了。问题解决了,取值出错了。

支持(0) 反对(0) .NET码农仔 | 园豆:158 (初学一级) | 2017-12-12 15:50
0

“2017/12/11/周一”先把“周一”这个文字截取去掉,去取得“2017/12/11/”然后在去比较日期

琴声 | 园豆:147 (初学一级) | 2017-12-12 15:45

e嗯,这个方法想过,不过我的问题出现在在从数据库取值时出错了。还是谢谢了。

支持(0) 反对(0) .NET码农仔 | 园豆:158 (初学一级) | 2017-12-12 15:51

@.NET小码农: 

什么数据库?sqlserver还是oracle还是mysql

支持(0) 反对(0) 琴声 | 园豆:147 (初学一级) | 2017-12-12 15:53

@琴声: orcle,用的可视化界面是PLSQL

支持(0) 反对(0) .NET码农仔 | 园豆:158 (初学一级) | 2017-12-12 16:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册