当前位置: 代码迷 >> C# >> C# ToString("yyyy-MM-dd")时间格式转换,该如何处理
  详细解决方案

C# ToString("yyyy-MM-dd")时间格式转换,该如何处理

热度:154   发布时间:2016-05-05 05:14:16.0
C# ToString("yyyy-MM-dd")时间格式转换
有两台PC(在不同的地区)的默认时间格式设置如下图所示:

我打算这样处理来统一不同的时间格式:
 Date = DateTime.Now.ToString("yyyy-MM-dd");
项目经理说这样做可能有风险。我在网上并没有找到相关的资料,大家有什么看法。多谢!
------解决思路----------------------
 Date = DateTime.Now.ToString("yyyy-MM-dd");
这句对两台机器都有效么?
------解决思路----------------------
引用:
我打算这样处理来统一不同的时间格式:
 Date = DateTime.Now.ToString("yyyy-MM-dd");


看不懂你这“统一”是什么意思。

就算是使用字符串来交换数据,那么要靠谱地“统一”,你就应该学习一下 utc 的格式标准。如果你使用json之类的进行复杂对象的序列化,那么你应该参考一下那些流行的 json 框架是如何处理时间的。
------解决思路----------------------
引用:
[/code]项目经理说这样做可能有风险。我在网上并没有找到相关的资料,大家有什么看法。多谢!


这样的项目经理可真是当得轻松啊。

我觉得“这样做可能有风险”真不是一个项目经理该说的话。项目经理应该是技术上提供标准化建议的(至少告诉你该去找什么资料),而不是连这种东西也要含糊其辞。
------解决思路----------------------
比如说你现在的电脑使用“北京时间”,现在是 18:53 分。你现在如果把时区改为“美国东部时间”,就觉得现在是美东时间18:53分吗?你知道两个地区的时差吗?

仅举一例,可见你的那个格式去搞“统一”,在概念上是完全错误的。
------解决思路----------------------
如果软件不出口到外国的话,大胆的用吧!没问题的!
------解决思路----------------------
引用:
有两台PC(在不同的地区)的默认时间格式设置如下图所示:

我打算这样处理来统一不同的时间格式:
 Date = DateTime.Now.ToString("yyyy-MM-dd");
项目经理说这样做可能有风险。我在网上并没有找到相关的资料,大家有什么看法。多谢!


不明白你经理的深意

获取DateTime.ParseExact可以帮到你,详细看msdn
http://msdn.microsoft.com/zh-cn/library/w2sa9yss.aspx
------解决思路----------------------
不明白你经理的深意

或许DateTime.ParseExact可以帮到你,详细看msdn
http://msdn.microsoft.com/zh-cn/library/w2sa9yss.aspx
------解决思路----------------------
考虑区域文化的差异,转换的时候带上CultureInfo
------解决思路----------------------
我觉得datetime.now.tostring("yyyy-MM-dd")没什么问题。 这个格式应该是通用的格式。
至于DateTime.ParseExact这个是将字符串转成日期和你的刚好相反。
------解决思路----------------------
如果需要拍出系统设置的日期格式的影响可以加DateTimeFormatInfo.InvariantInfo
------解决思路----------------------
引用:
Quote: 引用:

比如说你现在的电脑使用“北京时间”,现在是 18:53 分。你现在如果把时区改为“美国东部时间”,就觉得现在是美东时间18:53分吗?你知道两个地区的时差吗?

仅举一例,可见你的那个格式去搞“统一”,在概念上是完全错误的。

多谢你的指导,你的意思我明白了。这个问题我换个角度,这样表示:
以美国的时间格式(例如 dd-MMM-yy)为例,使用DateTime.Now获取当前的日期就是06-jan-15,那么再使用
ToString("yyyy-MM-dd") 能否将06-jan-15转换为2015-01-06呢?
以意大利的时间格式(例如dd-MMM-yyyy)为例,使用DateTime.Now获取当前的日期就是06-gen-2015,那么再使用 ToString("yyyy-MM-dd") 能否将06-gen-2015转换为2015-01-06呢?

干脆把年月日分开转换
------解决思路----------------------
"可能有风险"
可能有什么风险?
如果他说不清楚所谓的风险到底是什么,你也只能是靠瞎猜罢了
------解决思路----------------------
美国时间怎么了,意大利时间又怎么了,如果是在客户机本地显示,那美国的2015-1-6 14:0:0当然就应该显示这个,而不是显示北京时间到底几点.除非你还想把美国时间传输到意大利去.
------解决思路----------------------
考虑区域文化的差异,转换的时候带上CultureInfo
这样比较保险!
------解决思路----------------------
不知道你项目经理说啥,要是需要时分秒的话,直接Date = DateTime.Now就行了
------解决思路----------------------
datetime对象.tostring("yyyy-MM-dd")有效果,起码暂时在我公司的爱尔兰客户服务器上跑,是ok了,爱尔兰服务器不加这个格式化,会把输入的“2014-9-19”默认是转成了“19/09/2014”,把这个字符串拿到数据库做查询条件会出问题,程序给出格式化解决的
------解决思路----------------------
没什么风险,大胆用,你经理就是装B。
  相关解决方案