根据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格式的输出。
试试这个:
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。