字符串转换成时间类型。时间显示控件用的是datetimepicker,
目的是把每年的第一天显示在datetimepicker控件中:
var
sdate:string; sdate:=formatdatetime('yyyy',date);//取年,如2012
sdate:=sdate+'-01-01'; //把上一步中取的年加上-01-01 即为每年的第一天,如 2012-01-01
datetimepicker1.Date:=strtodate(sdate);//进行数据类型的转换,把字符串类型转换成时间类型运行时给出的错误提示是: ‘2012-01-01’ is not a valid date and time .请问我这样处理有问题吗?哪里的问题?另外还有好的办法吗?请详细解释,谢谢。
目的是把每年的第一天显示在datetimepicker控件中:
var
sdate:string; sdate:=formatdatetime('yyyy',date);//取年,如2012
sdate:=sdate+'-01-01'; //把上一步中取的年加上-01-01 即为每年的第一天,如 2012-01-01
datetimepicker1.Date:=strtodate(sdate);//进行数据类型的转换,把字符串类型转换成时间类型运行时给出的错误提示是: ‘2012-01-01’ is not a valid date and time .请问我这样处理有问题吗?哪里的问题?另外还有好的办法吗?请详细解释,谢谢。
StartOfTheYear
study
var
vFormatSettings: TFormatSettings;
begin
with vFormatSettings do
begin
CurrencyString := '';
CurrencyFormat := 0;
NegCurrFormat := 0;
ThousandSeparator := ',';
DecimalSeparator := '.';
CurrencyDecimals := 0;
DateSeparator := '-'; //日期分隔符
ShortDateFormat := 'yyyy-mm-dd';
LongDateFormat := 'yyyy-mm-dd';
TimeSeparator := ':'; //时间分隔符
TimeAMString := 'am';
TimePMString := 'pm';
ShortTimeFormat := 'hh:mm' ;
LongTimeFormat := 'hh:mm:ss';
ListSeparator := ',';
end;
Result := Sysutils.StrToDateTime(S, vFormatSettings);
end;
Application.Initialize; DateSeparator := '-';
ShortDateFormat := 'yyyy-MM-dd';
Application.UpdateFormatSettings := False;