当前位置: 首页 > 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# 中用于控制字符串格式化的强大工具。标准格式说明符适用于常见的格式化需求,而自定义格式说明符则提供了更高的灵活性。通过合理使用这些格式说明符,你可以生成符合需求的字符串输出。

http://www.xdnf.cn/news/508591.html

相关文章:

  • python创建flask项目
  • 动态内存管理2+柔性数组
  • 5.18 day24
  • RabbitMq C++客户端的使用
  • QT聊天项目DAY11
  • 服务端HttpServletRequest、HttpServletResponse、HttpSession
  • 软件工具:批量图片区域识别+重命名文件的方法,发票识别和区域选择方法参考,基于阿里云实现
  • SuperYOLO:多模态遥感图像中的超分辨率辅助目标检测之论文阅读
  • 05 部署Nginx反向代理
  • Flink Table SQL
  • [SpringBoot]Spring MVC(4.0)
  • TASK03【Datawhale 组队学习】搭建向量知识库
  • 【图像处理基石】OpenCV中都有哪些图像增强的工具?
  • 护网行动——蓝队防守方案指南
  • AI写PPT可以用吗?我测试了3款AI写PPT工具,分享感受
  • Vue 3.0 中的slot及使用场景
  • 【通用智能体】Playwright:跨浏览器自动化工具
  • 微信小程序 地图 使用 射线法 判断目标点是否在多边形内部(可用于判断当前位置是否在某个区域内部)
  • C语言内存函数与数据在内存中的存储
  • ctr查看镜像
  • 掌握版本控制从本地到分布式
  • flat_map, flat_set, flat_multimap, flat_multimap
  • 深入理解位图(Bit - set):概念、实现与应用
  • python中http.cookiejar和http.cookie的区别
  • 深入解析Spring Boot与Kafka集成:构建高性能消息驱动应用
  • 【技海登峰】Kafka漫谈系列(十一)SpringBoot整合Kafka之消费者Consumer
  • 【云原生架构反模式】常见误区与解决方案
  • WPS多级标题编号以及样式控制
  • ES(ES2023/ES14)最新更新内容,及如何减少内耗
  • 大模型微调:从基础模型到专用模型的演进之路