当前位置: 首页 > news >正文

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++模板进阶使用技巧
  • NY337NY340美光固态颗粒NC010NC012
  • wsl2中Ubuntu22.04配置静态IP地址
  • 基于STM32F103与Marvell88W8686的WIFI无线监控视频传输系统研发(论文)
  • 1.5 MouseDown,MouseUp,LostMouseCapture的先后顺序
  • 三、高级攻击工具与框架
  • OpenHarmony SIM卡信号值整体流程分析
  • 【Vue篇】数据秘语:从watch源码看响应式宇宙的蝴蝶效应
  • 仿腾讯会议——退出房间
  • spark数据处理练习题详解【上】
  • STM32 OTA 中断向量表重定向
  • Node.js 框架
  • 数组-长度最小的子数组
  • USB接口介绍
  • dijkstra算法加训上 之 分层图最短路
  • HashMap的扩容机制
  • AM32电调学习解读五:tenKhzRoutine
  • 二十、案例特训专题3【系统设计篇】web架构设计
  • nginx相关面试题30道
  • 【嵙大o】C++作业合集
  • 沧州盐碱地“逆天改命”:无用之地变良田,候鸟翔集水草丰美
  • 发射后失联,印度地球观测卫星发射任务宣告失败
  • 马上评|家长抱婴儿值护学岗,如何避免“被自愿”?
  • 李伟任山东省委常委、省纪委书记
  • 上海老字号卖黄金,与动漫IP联名两周销售额近亿元
  • 贵州仁怀通报“正新鸡排鸡腿里全是蛆”:已对同类产品封存送检