MaskedTimeField
MaskedTimeField 是一个文本输入框,允许用户以 数字 形式输入时间,并在字段失去焦点时根据定义的掩码自动格式化输入。掩码指定了期望的时间格式,以指导输入和显示。该组件支持灵活的解析、验证、本地化和数值恢复,以便于一致的时间处理。
寻找日期输入?
MaskedTimeField 专为 仅时间 输入而构建。如果您需要处理 日期 的组件,并具有类似的基于掩码的格式,请查看 MaskedDateField。
MaskedTimeField 可以在有或没有参数的情况下实例化。您可以定义初始值、标签、占位符和用于值更改的事件监听器。
掩码规则
MaskedTimeField 使用格式指示符来定义时间的解析和显示方式。每个格式指示符以 % 开头,后跟一个表示时间组件的字母。
以编程方式应用掩码
要在字段之外使用相同的掩码语法格式化或解析时间,请使用 MaskDecorator 实用类。
时间格式指示符
| 格式 | 描述 |
|---|---|
%H | 小时(24小时制) |
%h | 小时(12小时制) |
%m | 分钟 |
%s | 秒钟 |
%p | 上午/下午 |
修饰符
修饰符细化时间组件的显示:
| 修饰符 | 描述 |
|---|---|
z | 零填充 |
s | 简短文本表示 |
l | 长文本表示 |
p | 压缩数字 |
d | 十进制(默认格式) |
这些允许灵活且符合地方特色的时间格式化。
时间格式本地化
MaskedTimeField 通过设置适当的区域设置支持本地化。这确保时间输入和输出符合区域惯例。
field.setLocale(Locale.GERMANY);
这会影响上午/下午指示符的显示方式、分隔符的处理方式以及数值的解析方式。
解析逻辑
MaskedTimeField 根据定义的时间掩码解析用户输入。它接受完整和简略的数字输入,并可有或没有分隔符,从而允许灵活输入,同时确保有效的时间。
解析行为取决于掩码定义的格式顺序(例如,%Hz:%mz 用于小时/分钟)。此格式确定数字序列的解释方式。
示例解析场景
| 输入 | 掩码 | 解释为 |
|---|---|---|
900 | %Hz:%mz | 09:00 |
1345 | %Hz:%mz | 13:45 |
0230 | %hz:%mz %p | 02:30 AM |
1830 | %hz:%mz %p | 06:30 PM |