怎样把字符串'20030327'转为日期型:2003-03-27 ??? (20分)

  • 主题发起人 goodyang
  • 开始时间
G

goodyang

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把字符串'20030327'转为日期型:2003-03-27 ???
 
先把字符串分解,用 copy 函数就行
然后再合并成日期
用 encodedate
 
算好插入的位置将“-”插入就行了
用insert前面加上限定词如system
 
没有一个函数直接转换的吗??
 
S := '20030327';
sDate := Copy(S, 1, 4) + '/' + Copy(S, 5, 2) + '/' + Copy(S, 7, 2);
StrToDate(sDate);
 
strtodate是一个字符到日期的转换函数,但他仍要求是****-*-*格式,
要不,你自己些个函数吧
yanyandt2的方法也不错,我用过
 
我也是如 MILPAS那样做的,不过你中间的分隔符用‘-’比较标准吧
 
给你个建议
不要用分阁符号
根据设置的不同,有的日期分隔符号是‘-’,有的是‘/’
用delphi的 encodedate 函数,万无一失!
 
FormatDateTime('yyyy年mm月dd日',Now);
FormatDateTime('hh:nn',Now);
//=============================================
c Displays the date using the format given by the ShortDateFormat global variable, followed by the time using the format given by the LongTimeFormat global variable. The time is not displayed if the date-time value indicates midnight precisely.
d Displays the day as a number without a leading zero (1-31).
dd Displays the day as a number with a leading zero (01-31).
ddd Displays the day as an abbreviation (Sun-Sat) using the strings given by the ShortDayNames global variable.
dddd Displays the day as a full name (Sunday-Saturday) using the strings given by the LongDayNames global variable.
ddddd Displays the date using the format given by the ShortDateFormat global variable.
dddddd Displays the date using the format given by the LongDateFormat global variable.
e (Windows only) Displays the year in the current period/era as a number without a leading zero (Japanese, Korean and Taiwanese locales only).
ee (Windows only) Displays the year in the current period/era as a number with a leading zero (Japanese, Korean and Taiwanese locales only).
g (Windows only) Displays the period/era as an abbreviation (Japanese and Taiwanese locales only).
gg (Windows only) Displays the period/era as a full name. (Japanese and Taiwanese locales only).
m Displays the month as a number without a leading zero (1-12). If the m specifier immediately follows an h or hh specifier, the minute rather than the month is displayed.
mm Displays the month as a number with a leading zero (01-12). If the mm specifier immediately follows an h or hh specifier, the minute rather than the month is displayed.
mmm Displays the month as an abbreviation (Jan-Dec) using the strings given by the ShortMonthNames global variable.
mmmm Displays the month as a full name (January-December) using the strings given by the LongMonthNames global variable.
yy Displays the year as a two-digit number (00-99).
yyyy Displays the year as a four-digit number (0000-9999).
h Displays the hour without a leading zero (0-23).
hh Displays the hour with a leading zero (00-23).
n Displays the minute without a leading zero (0-59).
nn Displays the minute with a leading zero (00-59).
s Displays the second without a leading zero (0-59).
ss Displays the second with a leading zero (00-59).
z Displays the millisecond without a leading zero (0-999).
zzz Displays the millisecond with a leading zero (000-999).
t Displays the time using the format given by the ShortTimeFormat global variable.
tt Displays the time using the format given by the LongTimeFormat global variable.
am/pm Uses the 12-hour clock for the preceding h or hh specifier, and displays 'am' for any hour before noon, and 'pm' for any hour after noon. The am/pm specifier can use lower, upper, or mixed case, and the result is displayed accordingly.
a/p Uses the 12-hour clock for the preceding h or hh specifier, and displays 'a' for any hour before noon, and 'p' for any hour after noon. The a/p specifier can use lower, upper, or mixed case, and the result is displayed accordingly.
ampm Uses the 12-hour clock for the preceding h or hh specifier, and displays the contents of the TimeAMString global variable for any hour before noon, and the contents of the TimePMString global variable for any hour after noon.
/ Displays the date separator character given by the DateSeparator global variable.
: Displays the time separator character given by the TimeSeparator global variable.
'xx'/"xx" Characters enclosed in single ordo
uble quotes are displayed as-is, anddo
not affect formatting.
 
var
sd:string;
mydate:Tdatetime;
begin
sd:='20030327';
dateSeparator:='-';
shortdateformat:='yyyy/mm/dd';
sd:=copy(sd,1,4)+'-'+copy(sd,5,2)+'-'+copy(sd,7,2);
mydate:=strtodate(sd);
end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
956
SUNSTONE的Delphi笔记
S
S
回复
0
查看
779
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部