如何在C#的DateTime.ToString格式字符串中添加'at'文本?
解决DateTime格式字符串添加'at'文本的格式异常问题
我太懂你这种困扰了!直接在DateTime格式字符串里加'at'触发格式异常,核心原因是a和t会被系统当成格式占位符(比如a在多数区域设置里代表AM/PM标识,t可能对应短时间格式的片段),系统会试图解析它们而不是当成普通文本显示。要解决这个问题,有两种简单可靠的方法:
- 方法一:用单引号包裹'at'(推荐)
这是DateTime格式化规范里专门用来转义普通文本的方式,兼容性最好。把你原本的格式字符串里,需要显示的'at'用单引号括起来就行。
举个C#的示例:
DateTime currentTime = DateTime.Now; // 假设你原本的格式是 "yyyy-MM-dd HH:mm:ss" string formattedTime = currentTime.ToString("yyyy-MM-dd 'at' HH:mm:ss"); // 输出示例:2024-05-20 at 15:45:30
如果是Java,逻辑完全一致:
LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd 'at' HH:mm:ss"); String formattedTime = now.format(formatter);
- 方法二:用反斜杠转义单个字符
如果你的开发环境支持反斜杠转义(比如部分.NET场景),可以给a和t分别加上反斜杠,让系统把它们当成普通字符:
string formattedTime = currentTime.ToString("yyyy-MM-dd \\a\\t HH:mm:ss");
不过这种写法可读性不如单引号,而且在不同语言/框架下兼容性稍差,更推荐第一种方法。
这样修改后,既不会触发格式异常,还能让时间显示更清晰友好,完美解决你说的“显示效果欠佳”的问题~
内容的提问来源于stack exchange,提问作者user5405648
相关产品推荐
相关产品推荐

