关于时间转换的问题

.Net技术 码拜 10年前 (2015-05-10) 1094次浏览 0个评论
 

例子:

string time="2015/4/22 14:15:02";
DateTime newTime=Convert.ToDateTime(time);

//newTime输出结果  2015/4/22 下午 2:15:02

为什么newTime始终是12小时制,我想得到24小时制的时间类型结果,string类型的不要.求解!!

45分
DateTime本身没有’12小时制,24小时制‘的区别,只是你的当前显示规则为12小时。

你可以用ToString来自定义(显示)输出,比如:
string display = newTime.ToString(“s”);  等等

10分
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")//24小时格式
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")//12小时时间格式
引用 1 楼 Forty2 的回复:

DateTime本身没有’12小时制,24小时制‘的区别,只是你的当前显示规则为12小时。

你可以用ToString来自定义(显示)输出,比如:
string display = newTime.ToString(“s”);  等等

从数据库取的数据是12小时制的,我用ToString转换成24小时制的后,再用Convert.ToDateTime或者DateTime.Parse又重新变为12小时制的结果….很苦恼啊

引用 2 楼 lovelj2012 的回复:
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")//24小时格式
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")//12小时时间格式

这是string格式的,但是转回time又变成12小时制了

引用 4 楼 fancier202 的回复:
Quote: 引用 2 楼 lovelj2012 的回复:
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")//24小时格式
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")//12小时时间格式

这是string格式的,但是转回time又变成12小时制了

你是说

string s = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
Convert.ToDateTime(s);//得到是12格式的日期
用Convert.ToDateTime也没什么问题
其实DateTime.Parse就可以

从数据库里读出来是12小时制?
你数据库里时间字段难道不是时间类型,而是varchar类型吗???

45分
DateTime本身不存在什么12小时制,24小时制,它在内存里其实是个浮点型,表示从某个时间到现在的秒数

你断点监视的时候看起来它是12小时制,那是因为你的系统时间设置的就是12小时制.

引用 7 楼 Z65443344 的回复:

DateTime本身不存在什么12小时制,24小时制,它在内存里其实是个浮点型,表示从某个时间到现在的秒数

你断点监视的时候看起来它是12小时制,那是因为你的系统时间设置的就是12小时制.

正解,是系统设置原因


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于时间转换的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!