DateTime.Now()为何不同客户机上取得的时间格式不对.

luhui1982 2010-03-17 11:57:25
照理是取得服务器端的格式.
我测试时发现 有一台电脑,提交的时候,时间格式就变成德国时间格式了. 变成 17.03.2010 ,同一台机器,更改其他的账户,又好了,变成 2010/17/03
其他的电脑 都是 2010/17/03

当然我知道可以用.Tostring("yyyy-mm-dd")等方式解决.

我现在的问题是, 这个很怪异啊..不是应该取得的是 服务器端的时间吗, 格式也是服务器上的时间格式.
高手指教!!

...全文
1069 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
vrhero 2010-06-07
  • 打赏
  • 举报
回复
你要搞清楚两件事...

1.所谓计算机时间只是一个数字8个byte,没有格式计算机也不需要什么格式...

2.你看到的或者“人”看到的只是一个字符串,表示时间的数字如何以字符串表示由当地文化决定,也就是说由客户端当前用户的当前区域设置决定...除非你显式指定统一输出格式,否则假如每个用户有不同的区域设置那他们看到的字符串可能都不同...

换句话说,“17.03.2010”是“人”认为它是德国时间它才是,如何你认为它不是那这个字符串就是“错误”的表示...这个字符串对计算机没有任何意义,有意义的只是那个8个byte的数字...
mfdipq 2010-06-07
  • 打赏
  • 举报
回复
有可能是系统的时间格式设置不一样
imfor 2010-06-07
  • 打赏
  • 举报
回复
看服务器的时间格式 是什么,中文的服务器跟英文的服务器 和繁体版的服务器好像都不同·
Ray_Zhang 2010-06-07
  • 打赏
  • 举报
回复
这是应该是操作系统时间设置不一样吧,在区域和语言设置里选标准和格式里,选择定义...,时间选项卡这里改掉应该就改了吧。
V-Far 2010-06-07
  • 打赏
  • 举报
回复
服务器中保存时间是统一格式的.只是在页面中读取出来的时候是一个datetime.没有进行tostring格式化的话会根据客户端的时间设置相关显示而已
jiezi316 2010-06-07
  • 打赏
  • 举报
回复
时间是对的。不过格式的展示和机器的设置,和语言有关系。
truecoffeefox 2010-06-07
  • 打赏
  • 举报
回复
aspnet 的datetiem.now()取的明明是服务器端的时间,怎么就成客户端的了
如果取客户端,不用js那dll还直接乘ActiveX直接运行了不成
nocallstle 2010-06-07
  • 打赏
  • 举报
回复
举一个例子:
大家都做个验证码吧,一个时间是取的服务器上的,一个取的是客户端的,如果两个时间不一致,那么你永远也登录不上系统。。。。。。

回答楼主,取的肯定是客户端的日期,系统设置不同嘛
HolyPlace 2010-06-07
  • 打赏
  • 举报
回复
机器时间格式是可以设置的
Luckeryin 2010-06-07
  • 打赏
  • 举报
回复
同样的问题,期待解决方案.
V-Far 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 for_ever_do_ 的回复:]
我也碰到过类似 关于datetime的怪异问题 得到的服务器时间根本不对号 时差很大 不知道为什么
[/Quote]这个有点玩笑...
V-Far 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 wukaiping870123 的回复:]
楼主格式化一下不就可以了么
[/Quote]

DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);
火星大能猫 2010-03-18
  • 打赏
  • 举报
回复
楼主格式化一下不就可以了么
cgaanns 2010-03-18
  • 打赏
  • 举报
回复
.Tostring("yyyy-mm-dd")
sunzhong2003 2010-03-18
  • 打赏
  • 举报
回复
当然需要显式格式化,不然出问题的几率很大
fcpslove 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 for_ever_do_ 的回复:]
我也碰到过类似 关于datetime的怪异问题 得到的服务器时间根本不对号 时差很大 不知道为什么
[/Quote]


怎么可能呢。。。
fcpslove 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 herty 的回复:]
建议还是直接拿服务器上面的时间。有的人本地时间不一定正确。
[/Quote]

他的DateTime.Now()这代码是在他的服务器上运行的,当然就是取的服务器的时间,关客户端电脑的时区,格式什么设置的有关系吗???如果北京服务器的时间是2010-03-18早上10点,那你跑大米国打开网站,难道看到的会是晚上10点吗。代码在哪运行,就是取哪的时间。
  • 打赏
  • 举报
回复
很正常地啊。

每一台机器、每一个用户,设置自己的时区以及显示格式都可以不同。并且,每一台机器也还都可能跟服务器的时间有很大是时间差(时钟不准)。

如果这些不考虑,做大一点的企业网络应用软件肯定做砸。
Alden 2010-03-17
  • 打赏
  • 举报
回复
机器的区域不同,时间格式也不同。
小鹏 2010-03-17
  • 打赏
  • 举报
回复
可能是系统时间设置不统一,有的用24小时制,有的用12小时制。
加载更多回复(13)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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