【发布时间】:2014-08-18 15:34:33
【问题描述】:
用户将为日期输入一个字符串值。 StrToDate 将用于将字符串值转换为 DateTime。如果用户输入的日期为 2 位数年份,则该日期可能会被解析为当前世纪 (20xx) 或上一世纪 (19xx)。
为了消除歧义,如何要求用户输入 4 位数的年份?
if isFourDigitYear(txbDate.Text) then
date := StrToDate(txbDate.Text)
else
ShowMessage('enter date with 4 digit year');
【问题讨论】:
-
@TLama 我的意思是一个包含 2 位数年份的日期,例如 8/18/64。编辑问题以试图澄清
-
使用要求 4 位数年份的格式字符串。但是你必须选择格式字符串。你想这样做吗?
-
@DavidHeffernan 可以选择,但我不知道如何在格式字符串中强制使用 4 位数年份。我的默认 ShortDateFormat 是 M/d/yyyy 但 StrToDate 不需要 4 位数的年份。格式字符串是否有一些语法来使 4 位 yyyy 需要?
-
那你就需要自己解析字符串了。
-
为什么不改用
TDateTimePicker?它专为日期/时间输入而设计。
标签: delphi