Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1257522
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2009-01-04 16:55:43



每次在使用   StrToDate   或   DateToStr   我总是提心掉胆的  
   
  因为   我的数据是在客户端用   DateToStr   转成   字符串发到服务器的  
   
  服务器再用   StrToDate   转成   TDate   的  
   
  现在没什么问题,   我怕万一客户端的日期格式与服务器不一下,   会转失败的.   如何办呢?  
   
  有没有统一的方法?  
  我知道可以用   FormatDateTime   来生成指定格式的string    
  但如果把这个字符串反变成   TDate   呢?   strtodate   也许是不行的

用   FormatDateTime   转换比较好的,比如FormatDateTime('yyyymmdd',Now());如果是Sql   Server,数据库会自己识别和转换传来的字符串,关系不大。

如果   客户端,服务端都是你做的话  
   
  在程序初始化时都    
   
      ShortDateFormat   :=   'yyyy-mmm....  
      LongDateFormat   :=     'yyyy-mmm....  
   
   
  给这两个全局量给个值,这样日期格式就不由系统设置变了  
   
   
   
 

FormatDateTime   统一标准   例如   2005-09-28   就可以了   楼上踢踏正解!

为什么要转成字符串呢,datetime本来就是浮点型的值,直接传不就行了。

传数值应该比穿字符快!

我必须要把它传成   String   .   系统需要

日期转double,double再转字符串!   用double传数据!  
  到服务器端,字符串转double,double再转日期!

在程序中将日期利用formatdatetime('yyyy-mm-dd',now())  
  这样保证格式能够一致  
  如果用datetostr有时会以字符串中有汉字(我就遇到过)  
  所以我觉得还是   formatdatetime较好

日期转double,double再转字符串!   用double传数据!  
   
  double   转   string   太长了

在程序中将日期利用formatdatetime('yyyy-mm-dd',now())  
  这样保证格式能够一致  
  如果用datetostr有时会以字符串中有汉字(我就遇到过)  
  所以我觉得还是   formatdatetime较好  
  ------------------------  
  关键是   用   formatdatetime('yyyy-mm-dd',now())  
  得到的   String   如何再转成   TDateTime

如果是Sql   Server数据库,传Double型数据不理想的,原因是Sql   Server和Delphi定义的时间起点是不一致的,相差了几天,大家可以自己看看  
  select   convert(datetime,0)       ----》   1900-01-01   00:00:00.000  
  DateTimePicker1.DateTime:=0     ----》   1899-12-30

那就用记录或者列表打包嘛...分别把年月日放到不同的字段里  
  如果是SOAP通信,那就更容易了,直接打成XML包



--------------------------
盛大招聘.Net开发工程师

新闻:2008年开源软件10大胜利
导航:博客园首页  知识库  新闻  招聘  社区  小组  博问  网摘  找找看
阅读(1106) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~