C# 格式 DateTime 没有年份

标签 c# datetime internationalization date-formatting

是否有可能在没有年份和月份的情况下以国际化的数字表示形式格式化 DateTime?

例如new DateTime(2018, 8, 10)(今天)

一方面,我们有“d”表示 10.08.2018 (德语)或 2018/08/10 (日本人)。

另一方面,我们有“M”给我们 10. August (德语)或 August 10 (美国英语)

但我想要的是10.08. (德语), 08/10 (日语), 8/10 (美国英语),10/08 (英式英语)

最佳答案

也许你可以拿 ShortDatePattern来自 DateTimeFormatInfo去掉yyyy?

您必须要有一点创意才能用它删除分隔符。

A 替换链

.Replace(DateFormatInfo.DateSeparator+"yyyy")
.Replace("yyyy"+DateFormatInfo.DateSeparator)

正则表达式可能会起作用 ^y+[^0-9A-Za-z]+|[^0-9A-Za-z]+y+$
  string[]  cultures = { "en-US", "ja-JP", "fr-FR" };
  DateTime date1 = new DateTime(2011, 5, 1);

  Console.WriteLine(" {0,7} {1,19} {2,10}\n", "CULTURE", "PROPERTY VALUE", "DATE");

  foreach (var culture in cultures) {
     DateTimeFormatInfo dtfi = CultureInfo.CreateSpecificCulture(culture).DateTimeFormat;
     Console.WriteLine(" {0,7} {1,19} {2,10}", culture, 
                       dtfi.ShortDatePattern, 
                       date1.ToString("d", dtfi));
  }

CULTURE      PROPERTY VALUE       
en-US            M/d/yyyy  
ja-JP          yyyy/MM/dd 
fr-FR          dd/MM/yyyy 

来自:https://docs.microsoft.com/en-us/dotnet/api/system.globalization.datetimeformatinfo.shortdatepattern?view=netframework-4.7.2

关于C# 格式 DateTime 没有年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51786699/

相关文章:

C# 是否有 LINQ to HTML 或其他一些好的 .Net HTML 操作 API?

c# - 将 Linq 查询转换为 .Net 中的结构

c# - 在 C# 中将 DateTime 转换为 MM/dd/yyyy

Java 8 : Calculate difference between two ZonedDateTime

c# - 为由多个数据库表组成的 View 创建 ViewModel (MVC 4)

c# - 如何内联我的内部函数?

php - 使用 PHP 生成从任意日期开始的一年中每周的开始日期和结束日期

java - Spring 消息源: access message file within dependency jar

spring - 如何在运行时更改 Locale.setDefault(new Locale ("en", "US"))?

angular - AWS Cloudfront 分发多语言 Angular 应用程序