使用DateTime.ToString()时如何避免"/"显示为制表符?
解决DateTime格式化时"/"显示为制表符的问题
问题原因
.NET日期格式化字符串中的/是日期分隔符占位符,它会自动替换为当前线程文化设置的日期分隔符。如果你的程序运行环境的文化设置中,日期分隔符被配置为制表符(\t),就会出现输出中/被替换成制表符的情况。
两种解决方法
方法1:将"/"转义为字面量
在格式字符串中用单引号包裹/,强制将其作为普通字符输出,不受文化设置影响:Console.WriteLine(showDate.ToString("dd'/'MM'/'yyyy | HH:mm"));方法2:指定不变文化(InvariantCulture)格式化
使用CultureInfo.InvariantCulture确保日期分隔符始终为/,这种方式适合需要跨区域统一格式的场景:using System.Globalization; // 需添加该命名空间引用 // ... 原有代码不变 Console.WriteLine(showDate.ToString("dd/MM/yyyy | HH:mm", CultureInfo.InvariantCulture));
修改后代码示例(方法1)
changeDate_temp = calendarPostPone.SelectedDate.Value.ToString("dd/MM/yyyy").Split(' '); showDate = new DateTime(Convert.ToInt32(changeDate_temp[2].Trim()), Convert.ToInt32(changeDate_temp[1].Trim()), Convert.ToInt32(changeDate_temp[0].Trim()), 12, 0, 0); Console.WriteLine(showDate.ToString("dd'/'MM'/'yyyy | HH:mm"));
内容的提问来源于stack exchange,提问作者bagaco
相关产品推荐
相关产品推荐

