C# String 格式说明符

  • 标准格式说明符
    • 数字格式说明符
      • `C` 或 `c`:货币格式
      • `D` 或 `d`:十进制数字格式
      • `E` 或 `e`:科学计数法格式。
      • `F` 或 `f`:固定点格式
      • `G` 或 `g`:常规格式
      • `N` 或 `n`:数字格式
      • `P` 或 `p`:百分比格式
      • `X` 或 `x`:十六进制格式
    • 日期时间格式说明符
      • `d`:短日期格式
      • `D`:长日期格式
      • `t`:短时间格式
      • `T`:长时间格式
      • `f`:完整日期时间格式
      • `F`:完整日期时间格式
      • `g`:通用日期时间格式
      • `G`:通用日期时间格式
      • `u`:通用排序格式
      • `U`:通用排序格式
  • 自定义格式说明符
    • 自定义数字格式说明符
      • `0`:占位符,表示数字位
      • `#`:占位符,表示数字位
      • `.`:小数点分隔符
      • `,`:千位分隔符
    • 自定义日期时间格式说明符
      • `yyyy`:四位年份
      • `MM`:两位月份
      • `dd`:两位日期
      • `HH`:两位24小时制的小时
      • `mm`:两位分钟
      • `ss`:两位秒
      • `fff`:三位毫秒
  • 格式说明符的使用示例
    • 字符串格式化
    • 字符串插值
    • 日期时间格式化
  • 总结

C# 中,格式说明符用于定义字符串格式化时的输出格式。它们可以用于 ToString 方法、 String.Format 方法以及字符串插值中。以下是一些常见的格式说明符及其用途:

标准格式说明符

标准格式说明符是预定义的格式化规则,适用于常见的数据类型(如数字、日期时间等)。

数字格式说明符

Cc:货币格式

会根据当前文化区域设置显示货币符号。

double a = 123123123.456123123;
Console.WriteLine(a.ToString("C"));// 输出:¥123,123,123.46
								   //(默认文化区域设置)

Dd:十进制数字格式

显示整数的完整数字形式。

int number = 12345;
Console.WriteLine(number.ToString("D")); // 输出:12345

Ee:科学计数法格式。

double value = 123456789;
Console.WriteLine(value.ToString("E")); // 输出:1.234568E+08

Ff:固定点格式

显示小数点后的固定位数。

double value = 123.45678;
Console.WriteLine(value.ToString("F2")); // 输出:123.46

Gg:常规格式

根据数字的大小和类型自动选择合适的格式。

double value = 123456789;
Console.WriteLine(value.ToString("G")); // 输出:123456789

Nn:数字格式

显示千位分隔符。

int number = 123456789;
Console.WriteLine(number.ToString("N")); // 输出:123,456,789

Pp:百分比格式

将数字乘以 100 并显示百分号。

double percentage = 0.12345;
Console.WriteLine(percentage.ToString("P")); // 输出:12.35%

Xx:十六进制格式

显示数字的十六进制表示。

int number = 255;
Console.WriteLine(number.ToString("X")); // 输出:FF

日期时间格式说明符

d:短日期格式

MM/dd/yyyy

DateTime now = DateTime.Now;
Console.WriteLine(now.ToString("d")); // 输出:05/18/2025

D:长日期格式

dddd, MMMM dd, yyyy

Console.WriteLine(now.ToString("D")); // 输出:Sunday, May 18, 2025

t:短时间格式

HH:mm

Console.WriteLine(now.ToString("t")); // 输出:14:30

T:长时间格式

HH:mm:ss

Console.WriteLine(now.ToString("T")); // 输出:14:30:45

f:完整日期时间格式

短日期 + 长时间

Console.WriteLine(now.ToString("f")); // 输出:2025年5月18日 20:07

F:完整日期时间格式

长日期 + 长时间

Console.WriteLine(now.ToString("F")); // 输出:2025年5月18日 20:07:51

g:通用日期时间格式

短日期 + 短时间

Console.WriteLine(now.ToString("g")); // 输出:2025/05/18 20:09

G:通用日期时间格式

短日期 + 长时间

Console.WriteLine(now.ToString("G")); // 输出:2025/05/18 20:08:23


u:通用排序格式

yyyy-MM-dd HH:mm:ssZ

Console.WriteLine(now.ToString("u")); // 输出:2025-05-18 20:08:44Z

U:通用排序格式

Console.WriteLine(now.ToString("u")); // 输出:2025年5月18日 12:10:17


自定义格式说明符

自定义格式说明符允许你定义自己的格式规则,适用于数字和日期时间类型。

自定义数字格式说明符

0:占位符,表示数字位

如果数字不足,会用零填充。

int number = 123;
Console.WriteLine(number.ToString("00000")); // 输出:00123

#:占位符,表示数字位

如果数字不足,不会填充。

int number = 123;
Console.WriteLine(number.ToString("#####")); // 输出:123

var a = 123456.12;
Console.WriteLine(a.ToString("#000.#00")); // 输出:123456.120
Console.WriteLine(a.ToString("#000.00#")); // 输出:123456.12

  • #用于避免显示多余的零。
  • 0用于确保格式化后的字符串长度固定。

.:小数点分隔符

double value = 123.456;
Console.WriteLine(value.ToString("0.00")); // 输出:123.46

,:千位分隔符

int number = 123456789;
Console.WriteLine(number.ToString("#,##0")); // 输出:123,456,789

自定义日期时间格式说明符

yyyy:四位年份

DateTime now = DateTime.Now;
Console.WriteLine(now.ToString("yyyy")); // 输出:2025

MM:两位月份

Console.WriteLine(now.ToString("MM")); // 输出:05

dd:两位日期

Console.WriteLine(now.ToString("dd")); // 输出:18

HH:两位24小时制的小时

Console.WriteLine(now.ToString("HH")); // 输出:14

mm:两位分钟

Console.WriteLine(now.ToString("mm")); // 输出:30

ss:两位秒

Console.WriteLine(now.ToString("ss")); // 输出:45

fff:三位毫秒

Console.WriteLine(now.ToString("fff")); // 输出:123

格式说明符的使用示例

以下是一些综合示例,展示如何在不同场景中使用格式说明符。

字符串格式化

double price = 123.456;
int quantity = 10;
string formatted = String.Format("The price is {0:C} and the quantity is {1:N}", price, quantity);
Console.WriteLine(formatted); // 输出:The price is $123.46 and the quantity is 10

字符串插值

double price = 123.456;
int quantity = 10;
string interpolated = $"The price is {price:C} and the quantity is {quantity:N}";
Console.WriteLine(interpolated); // 输出:The price is $123.46 and the quantity is 10

日期时间格式化

DateTime now = DateTime.Now;
string formattedDate = now.ToString("yyyy-MM-dd HH:mm:ss");
Console.WriteLine(formattedDate); // 输出:2025-05-18 14:30:45

总结

格式说明符是 C# 中用于控制字符串格式化的强大工具。标准格式说明符适用于常见的格式化需求,而自定义格式说明符则提供了更高的灵活性。通过合理使用这些格式说明符,你可以生成符合需求的字符串输出。

你可能感兴趣的:(C#,c#,服务器,开发语言)