C#中如何将DateTimePicker日期转换为指定格式字符串?
在C#中将德语格式日期转换为指定字符串格式
要将德语格式的日期字符串(如Mittwoch, 21. Januar 2024)转换为dd.MM.yyyy格式的字符串,只需两步:解析德语日期和格式化目标字符串,具体实现如下:
1. 解析德语日期字符串
由于输入是德语格式的日期,需要使用德语区域文化(de-DE)来识别日期中的德语元素(比如德语月份名、星期名)。推荐使用DateTime.TryParse方法,避免格式错误时抛出异常。
2. 格式化为目标格式
解析得到DateTime对象后,通过ToString方法传入格式字符串"dd.MM.yyyy",即可生成日、月、年均为两位数字的输出格式。
完整代码示例
using System; using System.Globalization; public class DateConversionExample { public static void Main() { // 示例德语格式日期(实际输入可能包含德语星期/月份) string inputDate = "Wednesday, 21. January 2024"; // 指定德语文化信息 var germanCulture = new CultureInfo("de-DE"); // 解析日期 if (DateTime.TryParse(inputDate, germanCulture, DateTimeStyles.None, out DateTime parsedDate)) { // 格式化为"dd.MM.yyyy"格式,使用InvariantCulture确保格式稳定 string outputDate = parsedDate.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture); Console.WriteLine(outputDate); // 输出:21.01.2024 } else { Console.WriteLine("无法解析输入的日期格式"); } } }
注意事项
- 如果输入的日期字符串包含德语本地化内容(如
Mittwoch(星期三)、Januar(一月)),de-DE文化会自动识别,无需额外处理。 - 使用
CultureInfo.InvariantCulture进行格式化,能保证输出不受当前线程的区域设置影响,始终生成两位数字的日和月。 - 若需要严格匹配输入格式,可以使用
DateTime.TryParseExact指定精确格式,例如:// 精确匹配"星期, 日. 月 年"的格式 string inputFormat = "dddd, dd. MMMM yyyy"; if (DateTime.TryParseExact(inputDate, inputFormat, germanCulture, DateTimeStyles.None, out DateTime parsedDate)) { string outputDate = parsedDate.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture); }
内容的提问来源于stack exchange,提问作者Laurin Theisen
相关产品推荐
相关产品推荐

