注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

古城风~~~

竹密无妨溪水过,天高不碍白云飞。这天下总有一份是属于我古城的天地!

 
 
 

日志

 
 

系统时间由12小时制改成24小时制方法(从字符串向 datetime 转换时失败)  

2012-11-02 13:46:59|  分类: asp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
如果错误显示(错误代码:0x80040E07;错误描述:从字符串向 datetime 转换时失败;),则有可能是因为系统时间now或time等函数是使用12小时制,而数据库中的字段使用了Datetime类型引起的,所以可以通过把系统改成24小时制来解决;当然通过格式化时间字符来解决就更好了。
以下是把系统显示的12小时制改成24小时制的方法:
原来显示如下图
web中把时间由12小时制改成24小时制方法(从字符串向 datetime 转换时失败) - 古城 - 古城风~~~

通过修改注册表“HKEY_USERS\.DEFAULT\Control Panel\International”下的“iTime”来实现,把iTime从0改成1,重新启动iis等就可以了。

修改后显示如下:
web中把时间由12小时制改成24小时制方法(从字符串向 datetime 转换时失败) - 古城 - 古城风~~~
 

 
以下是参考原文:http://www.info110.com/webserver/in10659-1.htm
------------------------------------------------------------------------------------------------------------------------------

WINDOWS 2003 SERVER系统时间24小时制与12小时格式不一致问题,而导致论坛或BLOG不能正常显示更新日期的问题及解决方法问题的方法。

    在WIN2003上出现这种情况的原因是在程序中使用VBScript语言中的时间函数“Now()”时取得系统的时间时发生的不正常现象,当你使用这个函数时,虽然我们在[控制面板]-[区域和语言选项]-[自定义]中设置了如下正常内容:H:mm:ss,但是当你使用VBScript中的NOW()函数,仍然显示如下形式:2006-06-25 上午 11:52:28 。这个问题出现的原因不确定,但使用GHOST版系统的,出现的问题较多,如:动易程序的统计不能正常全部显示问题,这可能和GHOST的系统盘安装的2003有关,这里先不讨论,安装后的系统时间问题的解决方法。

解决方法一:

在WINDOWS 2003[控制面板]-[区域和语言选项]-[自定义]把时间设置为24小时格式。格式如图
设置后返回上一页,在上面的 [高级] 标签中将下面的 [默认用户帐户设置] 中 [将所有设置应用于当前用户帐户和默认用户配置文件] 打上勾。 
然后重启服务器。

解决方法二:

把 iTime 值 改成1 ,重启IIS 也可以了,这是我在网上找到的解决方法之一,大家可以根据情况使用,以能够解决问题为最终目标。

键值位置:[HKEY_USERS\.DEFAULT\Control Panel\International]
修改内容:"iTime"="1"

===========================================
或可把以下内容存为.reg 文件,双击导入即可
===========================================

Windows Registry Editor Version 5.00
[HKEY_USERS\.DEFAULT\Control Panel\International]
"iTime"="1" 

附:

困扰我一个多月的问题终于在昨天被解决了,其实问题很简单老是显示12小时制,总是出现上午、下午。这个问题虽然很小,但是有中文就无法将时间保存在数据库中。虽然可以修改代码,但是这个问题确实问了好多人都不知道因果。
虽然网上很多人都说在win2000区域中设置时间格式为24制,但是问题依旧。网上也搜索了好几天都发现没人能解决这个问题,终于我的一个朋友精通搜索微软msdn库,所以现在终于找到了解决方案。答案就是修改注册表就可以了。
1、控制面板--区域和语言选项--把时间设置为24小时格式。
2、打开注册表建立HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEAUT\
VarConversionLocaleSetting = 2 (DWORD) 
备注:OLEAUT 项可能不存在。如果它不存在,则必须先创建该项。
3、重新启动IIS。
哈哈,发现是不是困扰多时的问题解决了呢。
原理是强制使asp时间使用区域格式。

----------------------转载网友关于ASP程序的解决方案,以下为原文---------------------------------------


建议各位ASP用户输出/输入时间时用函数处理一下也是不错的方案,假如系统存在这个问题也不用再担心了, 附函数如下:


‘ ============================================
‘ 格式化时间(显示)
‘ 参数:n_Flag
‘ 1:"yyyy-mm-dd hh:mm:ss"
‘ 2:"yyyy-mm-dd"
‘ 3:"hh:mm:ss"
‘ 4:"yyyy年mm月dd日"
‘ 5:"yyyymmdd"
‘ 6:"mm-dd"
‘ ============================================
Function Format_Time(s_Time, n_Flag)
Dim y, m, d, h, mi, s
Format_Time = ""
If IsDate(s_Time) = False Then Exit Function
y = cstr(year(s_Time))
m = cstr(month(s_Time))
If len(m) = 1 Then m = "0" & m
d = cstr(day(s_Time))
If len(d) = 1 Then d = "0" & d
h = cstr(hour(s_Time))
If len(h) = 1 Then h = "0" & h
mi = cstr(minute(s_Time))
If len(mi) = 1 Then mi = "0" & mi
s = cstr(second(s_Time))
If len(s) = 1 Then s = "0" & s
Select Case n_Flag
Case 1
‘ yyyy-mm-dd hh:mm:ss
Format_Time = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s
Case 2
‘ yyyy-mm-dd
Format_Time = y & "-" & m & "-" & d
Case 3
‘ hh:mm:ss
Format_Time = h & ":" & mi & ":" & s
Case 4
‘ yyyy年mm月dd日
Format_Time = y & "年" & m & "月" & d & "日"
Case 5
‘ yyyymmdd
Format_Time = y & m & d
case 6
‘mm-dd
Format_Time = m & "-" & d
End Select
End Function
  评论这张
 
阅读(2050)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017