TFormatSettings的用法(这个问题有点难)(80分)

  • 主题发起人 主题发起人 wq_quake
  • 开始时间 开始时间
W

wq_quake

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用时间函数时,对于将时间转换为TDatetime可以用FormatDateTime,
例str:=FormatDateTime('hh:mm:ss zzz', now);可以得到毫秒级的表示。
反过来我知道str:='hh:mm:ss zzz',如何能够得到TDateTime呢。我查了一下函数有strToDateTime但是就是不知如何设置TFormatSettings,都代表什么
 
var
dt:TadetTime;
begin
dt:=encodeTime(hour,minute,second,ms);
end;
 
根据Format的格式将DateTime(如 now)转换成相应的格式。
d 以非0打头的数字(1-31)显示天
dd 以0打头的数字(01-31)显示天
ddd 以全局变量ShortDayNames提供的字符串的简写(Sun-Sat)显示天。
dddd 以全局变量LongDayNames提供的字符串的全称(Sunday-Saturday)显示天。
ddddd 使用由全局变量ShortDateFormat提供的格式显示天。
dddddd 使用由全局变量LongDateFormat提供的格式显示天。

e (只适合Windows)以非0打头的数字显示日期(只适用日本,朝鲜,台湾地区)
ee (只适合Windows)以0打头的数字显示日期(只适用日本,朝鲜,台湾地区)

g (只适合Windows)以简写的方式显示日期(只适用日本,台湾地区)
gg (只适合Windows)以全称的方式显示日期(只适用日本,台湾地区)

m 以非0打头的数字(1-12)显示月,如果m后紧跟h或hh,那么是显示分钟而不是月。
mm 以0打头的数字(01-12)显示月,如果mm后紧跟h或hh,那么是显示分钟而不是月。
mmm 使用由全局变量ShortMonthNames提供的格式的简写(Jan-Dec)显示月。
mmmm 使用由全局变量LongMonthNames提供的格式的全称(January-December)显示月。
y 以两位数字(00-99)显示年。
yy 以四位数字(0000-9999)显示年。
h 以非0打头的数字(0-23)显示时
hh 以0打头的数字(00-23)显示时
n 以非0打头的数字(0-59)显示分
nn 以0打头的数字(00-59)显示分
s 以非0打头的数字(0-59)显示秒
ss 以0打头的数字(0-59)显示秒
z 以非0打头的数字(0-999)显示毫秒
zzz 以0打头的数字(0-999)显示毫秒

t 使用全局变量ShortTimeFormat提供的格式显示时间
tt 使用全局变量LongTimeFormat提供的格式显示时间

am/pm 为前面的h指示器使用12小时时钟,并且在中午之前的小时之前显示'am',在中午之前的小时之后显示'pm',am/pm 可以使用小写,大写,或混合方式,结果也以相应的方式显示。
a/p 为前面的h指示器使用12小时时钟,并且在中午之前的小时之前显示'a',在中午之前的小时之后显示'p',a/p 可以使用小写,大写,或混合方式,结果也以相应的方式显示。

ampm 为前面的h指示器使用12小时时钟,在中午之前的小时后面显示全局变量TimeAMString的内容,在中午之后的小时后面显示全局变量TimePMString的内容

/ 显示由全局变量DateSeparator提供的日期分割符
:显示由全局变量TimeSeparator提供的时间分割符
包含单引号和双引号的'xx'/"xx" 字符显示为as-is,不会影响格式
 
多人接受答案了。
 
后退
顶部