本主题描述可用于对数字和日期/时间值设置格式的、最常用的标准格式说明符和自定义格式说明符。 完整列表请参阅 MSDN 中的 格式说明符 主题。
要把自定义文本添加到输出字符串中,可使用下面描述的自定义格式说明符 (对数字或日期/时间值设置格式时),或者使用 复合格式设置功能 (对任意值设置格式时)。
如果需要对数字设置格式,则将 FormatInfo.FormatType 属性设置为 FormatType.Numeric。 要为日期/时间设置格式,则将此属性设置为 FormatType.DateTime。 然后使用 FormatInfo.FormatString 属性来指定一个标准格式字符串或自定义格式字符串。
标准数字格式字符串
标准数字格式字符串采用 Axx 的形式。 其中 A 是被称为格式说明符的字母型字符。 xx 是称为精度说明符的可选整数。格式说明符指明值是否应被转换为货币格式、科学计数法等。 格式说明符必须设置为在 MSDN 的 标准数字格式字符串 主题中预定义的字符。 下表给出了部分最常用的设置。
格式说明符 | 说明 | 示例格式字符串 | 示例输出 |
---|---|---|---|
c 或 C | 数字转换为表示货币金额的字符串。 精度说明符指示所需的小数位数。 如果省略精度说明符,则使用当前区域选项的默认货币精度。 | c2 | $1,234.00 |
e 或 E | 数字转换为“-d.ddd…E+ddd”或“-d.ddd…e+ddd”形式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。 小数点前总有一个数字。 精度说明符指示小数点后所需的位数。 如果省略精度说明符,则使用默认值,即小数点后六位数字。 格式说明符的大小写指示在指数前加前缀“E”还是“e”。 指数总是由正号或负号以及最少三位数字组成。 如果需要,用零填充指数以满足最少三位数字的要求。 | E1 | 1.2E+003 |
n 或 N | 数字转换为“-d,ddd,ddd.ddd…”形式的字符串,其中“-”表示负数符号(如果需要),“d”表示数字 (0-9),“,”表示数字组之间的千位分隔符,“.”表示小数点符号。 如果数字是负数,则字符串以“-”号开始。 精度说明符指示所需的小数位数。 如果忽略精度说明符,则默认数值精度由当前区域选项给定。 | n0 | 1,234 |
x 或 X | 数字转换为十六进制数字的字符串。 格式说明符的大小写指示对大于 9 的十六进制数字使用大写字符还是小写字符。 例如,使用“X”产生“ABCDEF”,使用“x”产生“abcdef”。 精度说明符指示结果字符串中所需的最少数字个数。 如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。 只有整型才支持此格式。 | X8 | 000004D2 |
标准日期和时间格式字符串
标准日期和时间格式字符串包含单个字符。 此字符定义用于表示值的模式 (是否以及如何显示年份数、月份数等)。 下表给出了最常用的设置。 请参阅 MSDN 的 标准日期和时间格式字符串 主题获取完整列表。
格式说明符 | 说明 | 示例输出 |
---|---|---|
d | 短日期模式 | 3/12/2003 |
D | 长日期模式 | Wednesday, March 12, 2003 |
t | 短时间模式 | 12:00 AM |
T | 长时间模式 | 12:00:00 AM |
f | 完整日期/时间模式(短时间) | Wednesday, March 12, 2003 12:00 AM |
F | 完整日期/时间模式(长时间) | Wednesday, March 12, 2003 12:00:00 AM |
g | 常规日期/时间模式(短时间) | 3/12/2003 12:00 AM |
G | 常规日期/时间模式(长时间) | 3/12/2003 12:00:00 AM |
示例 1
下面的代码展示了如何使用长日期模式设置 DateEdit 控件值的格式 (在禁用编辑时)。 RepositoryItemDateEdit.DisplayFormat 属性被定制,以实现这种格式设置类型。 请参阅 格式说明符 主题了解关于格式说明符的信息。
英语(USA) culture 的结果显示如下:
C# | 复制代码 |
---|---|
using DevExpress.Utils; // ... dateEdit1.Properties.DisplayFormat.FormatType = FormatType.DateTime; dateEdit1.Properties.DisplayFormat.FormatString = "D"; |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.Utils ' ... DateEdit1.Properties.DisplayFormat.FormatType = FormatType.DateTime DateEdit1.Properties.DisplayFormat.FormatString = "D" |
自定义数字格式字符串
自定义格式字符串被用于人工构造格式模式。 当标准格式字符串不能满足需要时,你只需要使用它们。 通过一个紧跟着一位或两位数字的字母字符表示的所有格式字符串都被作为标准格式字符串处理, 其他字符串被解释为自定义格式字符串。 下表列出了可用于构造自定义格式字符串的最常用字符。 请参阅 MSDN 的 自定义数字格式字符串 主题,获取可用字符的完整列表。
字符 | 含义 |
---|---|
0 | 总是显示此数位。 |
# | 此数位仅当需要时才显示(例如用于消除前导零)。 |
. | 指定小数点的位置。 小数点的外观取决于区域设置。 |
, | 指定逗号的位置。 逗号的外观取决于区域设置。 |
注意,自定义格式字符串也可以包含其他字符,并且它们将被复制到设置了格式的字符串中。 可以用于把说明文本添加到值中。 如果需要显示一个保留字符,必须以“\”符号前导。
在为数值设置格式时,可以对正数、负数和零应用不同的格式。 要这样做,格式字符串必须包含三个用分号分隔的部分。 第一部分应用于正值,第二部分应用于负值,第三部分应用于零。
示例 2
下面的示例展示了如何呈现 CalcEdit 编辑器中的值,依赖于该值的符号。 这种使用自定义格式说明符的格式设置已被实现。 通过编辑器的 RepositoryItem.DisplayFormat 属性应用格式设置,这只会影响在显示模式中的文本, 在编辑模式中不起作用。 请参阅 格式说明符 主题,了解关于格式说明符的信息。
示例代码的执行结果如下图所示:
C# | 复制代码 |
---|---|
using DevExpress.Utils; // ... calcEdit1.Properties.DisplayFormat.FormatType = FormatType.Numeric; calcEdit1.Properties.DisplayFormat.FormatString = "#.00;[#.0];Zero"; |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.Utils ' ... CalcEdit1.Properties.DisplayFormat.FormatType = FormatType.Numeric CalcEdit1.Properties.DisplayFormat.FormatString = "#.00;[#.0];Zero" |
自定义日期和时间格式字符串
要创建日期和时间值的格式模式,你需要组合使用下表列出的字符串。 这些字符串以不同的格式来表示年份、月份、日数等。
下表列出了可用于为日期设置格式的最常用的字符串 (示例假设要设置格式的日期为 9/2/2003)。
符号 | 含义 | 值 |
---|---|---|
yy | 年份的后两位数字。 | 03 |
yyyy | 四位数字年份。 | 2003 |
MM | 月份的数字。 | 09 |
MMM | 月份的缩写名称。 | Sep |
MMMM | 月份的全名。 | September |
dd | 日数。 | 02 |
ddd | 一周中某天的缩写名称。 | Tue |
dddd | 一周中某天的全名。 | Tuesday |
/ | 日期分隔符。 它的外观取决于区域设置。 |
下表列出了用于设置时间值格式的字符串。
符号 | 含义 |
---|---|
hh | 小时。 |
mm | 分钟。 |
ss | 秒。 |
tt | 如果出现,则表示数据使用 AM/PM 格式。 |
: | 时间分隔符。 它的外观取决于区域设置。 |
注意: 上面的表中仅列出了最常用的部分格式字符串。 完整的列表请参阅 MSDN 的 自定义日期和时间格式字符串 主题。
示例 3
下面的示例代码展示了如何使用自定义格式字符串设置 DateEdit 控件中的日期/时间值, 请参阅 格式说明符 主题,了解关于格式说明符的信息。
C# | 复制代码 |
---|---|
using DevExpress.Utils; // ... dateEdit1.Properties.DisplayFormat.FormatType = FormatType.DateTime; dateEdit1.Properties.DisplayFormat.FormatString = "MMM/d/yyyy hh:mm tt"; |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.Utils ' ... DateEdit1.Properties.DisplayFormat.FormatType = FormatType.DateTime DateEdit1.Properties.DisplayFormat.FormatString = "MMM/d/yyyy hh:mm tt" |