如何将DateTime.Now转为DateOnly并输出dd/mm/yyyy格式日期?
如何将DateOnly转为dd/mm/yyyy格式的日期字符串?
DateOnly本身并不存储显示格式,它只是用来表示日期值的结构体。你看到的mm/dd/yyyy格式,是它默认ToString()方法根据当前线程的文化设置输出的结果。要得到严格的dd/mm/yyyy格式,需要显式指定格式字符串调用*ToString("dd/MM/yyyy")*方法,注意这里的MM是大写(代表月份,小写mm是分钟,别搞混)。
修改后的代码示例
public class Example { public DateOnly? Date { get; set; } } public class Process1 { public void GetFormattedCurrentDate() { Example example = new Example(); example.Date = DateOnly.FromDateTime(DateTime.Now); // 生成dd/MM/yyyy格式的字符串 string formattedDate = example.Date.Value.ToString("dd/MM/yyyy"); // 若需避免系统文化替换分隔符(部分地区会把/换成-),指定不变文化 string stableFormattedDate = example.Date.Value.ToString( "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture ); } }
额外注意事项
- 因为你的
Date是可空的DateOnly?类型,调用Value前建议先检查是否有值,避免空引用异常:
也可以用空传播操作符简化:string formattedDate = example.Date.HasValue ? example.Date.Value.ToString("dd/MM/yyyy") : string.Empty;string formattedDate = example.Date?.ToString("dd/MM/yyyy") ?? string.Empty; - 格式字符串里的
dd代表两位数字的日,yyyy代表四位数字的年,确保拼写正确。
内容的提问来源于stack exchange,提问作者Jositox
相关产品推荐
相关产品推荐

