根据G(日期和时间的组合)格式的customCultureInfo将DateTime转换为字符串

本文关键字:customCultureInfo DateTime 转换 字符串 格式 组合 日期 根据 时间 | 更新日期: 2023-09-27 18:21:39

我已将系统日期格式更改为法语。

我想根据customCulture将DateTime转换为字符串,格式为G(日期和时间的组合)

检查以下代码。

    namespace TestDateConvertion
        {
            class Program
            {
                static void Main(string[] args)
                {
                    object value = new DateTime(2003,12,23,6,22,30);
                    DateTime dateTimeValue = (DateTime)value;
                    CultureInfo customCulture = MySettings.getCustomCulture();  
                                     //for getting custom culture in my app
                                     //in custom culture i have changed shortDateFormat according to the user preference.
                                     //value in shortDateFormat = dd/MM/yyyy


                    string result = string.Format(customCulture, "{0:G}", result);
                    Console.WriteLine(result);
                    Console.ReadLine();
                }
            }
        }

但我是根据系统DateTime使用sepertator获得输出的,而不是在customCulture、中使用给定格式的用户

我甚至没有发现CCD_ 1或CCD_ 2中有任何重载的方法可以做到这一点。

如果我传递CultureInfo.InvariantCulture,那么我就无法获得G格式的输出。

根据G(日期和时间的组合)格式的customCultureInfo将DateTime转换为字符串

试试这个:

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("G", DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008 06:30:00
Console.WriteLine(date1.ToString("G", CultureInfo.CreateSpecificCulture("en-us")));
// Displays 4/10/2008 6:30:00 AM                        
Console.WriteLine(date1.ToString("G", CultureInfo.CreateSpecificCulture("nl-BE")));

根据标准日期和时间格式字符串"G"使用短日期格式(正如您所声称的那样)。因此,使用本地区域性分隔符的最可能原因在"自定义日期和时间格式字符串"的"/"自定义格式指定符部分中有介绍。

由于您的"短日期格式"是"dd/MM/yyyy"而不是"/",因此它将使用区域性信息中的相应分隔符(您可能从默认区域性中选择)。

在同一篇"自定义日期和时间格式字符串"文章的"使用转义符"部分中介绍了使用'进行转义。

因此,您需要shortDateFormat = @"dd'/MM'/yyyy"或在自定义CultureInfo的相应部分中正确指定DateTimeSeparator。

相关文章:
  • 没有找到相关文章