win7中的时间格式

        今天要做个报表,通过抓取网页来获的数据,当将其中的日期提取出来时,出现个问题,发现通过程序自动提取的时间,莫名的总会多加一个空格,不知道是什么导致的,不过倒是不影响数据,不过总觉得怪怪的,于是想将提取出的时间在做一下整理,手动肯定不行,写个小程序吧!

       需求很简单,将“2012-09-23 ”这样的字符创提取为excel中认识的时间格式,于是开始动手做了,不过问题随之来了。

      以前,经常将时间转化为字符创时,都是用的Caption := FormatDateTime('yyyy-mm-dd', Now);,于是就理所当然的认为“yyyy-mm-dd”这样的时间格式转为日期或者数字就好了,excel中可以设置单元格格式的,所以转化为数字也是可行的,但是当用StrToDate('2012-09-12');时,汇报告说不是时间,着实郁闷,于是上网搜了一下,没有问题呀,网上很多也是说要这样处理的,有点摸不着头脑了,不过突然有个想法,看看它默认的时间格式就清楚了,使用Caption := DateTimeToStr(Now);结果发现,运行的结果居然是“2012/09/23 12:00:56”,明白了,原来时间格式是‘yyyy/mm/dd’而不是‘yyyy-mm-dd’,难怪用excel将‘yyyy-mm-dd’转换时也是不行的,问题在这呀!,于是试了一下StrToDate('2012/09/12');果然顺利通过。

      不过为什么网上的都说StrToDate('2012-09-12');可行呢?突然想起,win7中似乎有相关的说明,说是时间格式修改了,查了一下,果然,再看一下刚刚看的资料,果然是比较就得,另外,之前在公司调用windows的窗体时,也出现了“终止”与“中止”的差异,没想到今天在时间这也受到限制了。

      不过网上有很多文章,是介绍如何将时间格式修改的,例如:

       Win7下,虽然我们将控制面板中的时间日期格式改为 YYYY-MM-DD了,但 ASP 函数NOW()或DATE()取得的日期还是带/的格式。我们可以通过更改注册表来解决这个问题:

       打开注册表,进入到[HKEY_USERS\.DEFAULT\Control Panel\International],然后

      1、将键 sDate 的值由 / 改为 -
      2、将键 sShortDate 的值由 yyyy/M/d 改为 yyyy-M-d
      3、重启IIS即可。

你可能感兴趣的:(excel,windows,报表,iis,date,asp)