时间格式的问题

wwwxuebin 2004-05-06 11:37:17
一个字段属性在access中被设置成短时间格式,但是,在table 里填写的话,会显示成
1899-12-31 xx:xx:xx 如何解决??
...全文
84 1 点赞 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
truemoller 2004-05-06
将access里时间字段设为字符串
程序处理时间为字符串后写入access

2、常用函数和过程
2.1 Date函数
function Date: TDateTime;
返回当前的日期,实际类型是TDateTime,也就是小数部分为0的DateTime值,小数部分为0代表什么意思呢?根据TDateTime的概念我们知道这代表午夜也就是0点。
2.2 DateToStr
函数的形式:function DateToStr(Date: TDateTime): string;
返回值是个字符串,很有用吧。不过,别高兴的太早,如果你用DateToStr(DateTimePicker.Date),你会发现返回的字符串可能是“04-22-03”,这是为什么呢?这是因为delphi内部有一些系统变量用来定义数字、货币、日期的格式,这些变量delphi称为Currency and date/time formatting variables,有23个。我也没有完全看懂,这里讲几个我搞明白的说说。
var ThousandSeparator: Char;
千分位的符号,一般都是西文的逗号“,”,默认值存放在LOCALE_STHOUSAND变量中(位于windows单元)
var DecimalSeparator: Char;
小数点的符号,一般都是西文的句号“.”,默认值存放在变量LOCALE_SDECIMAL中
var CurrencyDecimals: Byte;
小数点后面保留的位数,一般是2位,默认值存放在变量LOCALE_ICURRDIGITS中
var DateSeparator: Char;
日期的分隔符号,一般使用“-”或“.”,默认值为“-”,默认值存放在变量LOCATE_SDATE中
var ShortDateFormat: string;
短日期格式,一般是“yyyy.mm.dd”,默认值存放在变量LOCALE_SSHORTDATE中
var LongDateFormat: string;
长日期格式,一般是“yyyy.mm.dd”,默认值存放在变量LOCALE_SLONGDATE中
var TimeSeparator: Char;
时间的分隔符,一般是西文的分号“:”,默认值就是这个,默认值存放在变量 LOCALE_STIME中
var TimeAMString: string;
表示上午的字符串,默认为“AM”,默认值存放在变量LOCALE_S1159中
var TimePMString: string;
表示下午的字符串,默认为“PM”,默认值存放在变量LOCALE_S2359中
var ShortTimeFormat: string;
短时间格式,默认值存放在变量LOCALE_ITIME LOCALE_ITLZERO中
var LongTimeFormat: string;
长时间格式,一般为“hh:mm:ss”,默认值存放在变量LOCALE_ITIME and LOCALE_ITLZERO中
所以,如果想开发一个稳健的系统,那么这些系统变量必须要在进入系统的时候进行初始化,下面是我得代码:
SysLocale.PriLangID:=LANG_CHINESE;
DateSeparator:='.';
LongDateFormat:='yyyy.mm.dd';
ShortDateFormat:='yyyy.mm.dd';
TimeSeparator:=':';
LongTimeFormat:='hh:nn:ss';
TimeAMString:='上午';
TimePMString:='下午';
大家一定奇怪,为什么我的LongDateFormat和ShortDateFormat是一样的,老实讲,我也希望能够区分长短日期的格式,但是由于有些关于TDateTime的例程在类型转换的时候要参考ShortDateFormat,所以只能设置成一样的了。
还是继续说DateToStr函数。其他没什么特别的,需要注意的是此函数是根据ShortDateFormat来进行转换的,所以ShortDateFormat我只能设为“yyyy.mm.dd”
说道了DateTimePicker,注意在它的format属性中设置显示格式的时候月份要用“MM”而不是我们通常认为的“mm”。
2.3 StrToDate函数
function StrToDate(const S: string): TDateTime;
这个函数可以看成是DateToStr的逆函数,作用就是把一个字符串转换为TDateTime,参数S必须包括2个或3个数字,用DateSeparator所定义的分隔符分隔,年月日的顺序和格式遵从ShortDateFormat。如果输入的参数不符合日期类型的规定系统会触发EConvertError例外。
2.4 DateTimeToStr函数
function DateTimeToStr(DateTime: TDateTime): string;
把TDateTime转换为字符串,日期格式遵从ShortDateFormat,时间格式遵从LongTimeFormat,如果TDateTime的小数部分是0的话,那么返回的字符串中将没有时间部分。
2.5 StrToDateTime函数
function StrToDateTime(const S: string): TDateTime;
这个函数可以看作是DateTimeToStr函数的逆函数,和StrToDate差不多。
2.6 DateTimeToString过程
procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime);
这个过程的作用和DateTimeToStr和DateToStr一样,特别的地方是可以指定TDateTime的格式,这样就可以得到我们指定格式的日期型字符串了。
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库相关
加入

2462

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2004-05-06 11:37
社区公告
暂无公告