C# 如何获取当前区域的日期格式,如;年月日;
我正在使用System.Windows.Controls.DatePicker控件。此控件允许用户在日历中选择日期,但也可以直接写入日期 我希望给用户提供如何写这个日期的信息 因此,我基本上是在寻找一种显示常规日期(而不是特定日期)格式的方法 我知道:C# 如何获取当前区域的日期格式,如;年月日;,c#,C#,我正在使用System.Windows.Controls.DatePicker控件。此控件允许用户在日历中选择日期,但也可以直接写入日期 我希望给用户提供如何写这个日期的信息 因此,我基本上是在寻找一种显示常规日期(而不是特定日期)格式的方法 我知道: DateTime dt = DateTime.Now; Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); Console.WriteLine(dt.ToString("
DateTime dt = DateTime.Now;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine(dt.ToString("d")); // Gives 7/9/2001
看起来DatePicker使用的是“d”格式,因此我正在寻找一种方法来获取以下字符串“dd/mm/yyyy”
在法国(加拿大)地区,例如“yyyy-mm-dd”
非常感谢 使用
Console.WriteLine(dt.ToString(“dd/MM/yyyy”)代码>使用Console.WriteLine(dt.ToString(“dd/MM/yyyy”)代码>获取CultureInfo对象时,该对象上有DateTimeFormat属性。它有一个属性,该属性显示它用于格式化日期的模式
从链接的MSDN文章:
public class SamplesDTFI
{
public static void Main()
{
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));
}
}
}
// The example displays the following output:
// CULTURE PROPERTY VALUE DATE
//
// en-US M/d/yyyy 5/1/2011
// ja-JP yyyy/MM/dd 2011/05/01
// fr-FR dd/MM/yyyy 01/05/2011
当您获取CultureInfo对象时,它具有DateTimeFormat属性。它有一个属性,该属性显示它用于格式化日期的模式
从链接的MSDN文章:
public class SamplesDTFI
{
public static void Main()
{
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));
}
}
}
// The example displays the following output:
// CULTURE PROPERTY VALUE DATE
//
// en-US M/d/yyyy 5/1/2011
// ja-JP yyyy/MM/dd 2011/05/01
// fr-FR dd/MM/yyyy 01/05/2011
使用从CultureInfo
获取的DateTimeFormatInfo
对象。DateTimeFormatInfo
上有一些以“Pattern”结尾的属性。以下是我生成的列表:
Current culture: en-US
Property Format Result
-------------------- ----------------------------- -------------
FullDateTimePattern : dddd, MMMM dd, yyyy h:mm:ss tt - Thursday, February 04, 2016 3:51:17 PM
LongDatePattern : dddd, MMMM dd, yyyy - Thursday, February 04, 2016
LongTimePattern : h:mm:ss tt - 3:51:17 PM
MonthDayPattern : MMMM dd - February 04
RFC1123Pattern : ddd, dd MMM yyyy HH':'mm':'ss 'GMT' - Thu, 04 Feb 2016 15:51:17 GMT
ShortDatePattern : M/d/yyyy - 2/4/2016
ShortTimePattern : h:mm tt - 3:51 PM
SortableDateTimePattern : yyyy'-'MM'-'dd'T'HH':'mm':'ss - 2016-02-04T15:51:17
UniversalSortableDateTimePattern : yyyy'-'MM'-'dd HH':'mm':'ss'Z' - 2016-02-04 15:51:17Z
YearMonthPattern : MMMM, yyyy - February, 2016
如您所见,您想要的结果“dd/mm/yyyy”
不存在。要获得它,您必须对其进行硬编码
出于好奇(以下代码不是为了回答问题),这是我用来生成上表的代码:
var culture = CultureInfo.CurrentCulture;
var fmt = culture.DateTimeFormat;
Debug.WriteLine("Current culture: " + culture.Name);
foreach (var prop in fmt.GetType().GetProperties().Where(p => p.Name.EndsWith("Pattern")))
{
var pattern = prop.GetValue(fmt) as string;
Debug.WriteLine("{0,-35}: {1,-35} - {2}", prop.Name, pattern, DateTime.Now.ToString(pattern));
}
使用从CultureInfo
获取的DateTimeFormatInfo
对象。DateTimeFormatInfo
上有一些以“Pattern”结尾的属性。以下是我生成的列表:
Current culture: en-US
Property Format Result
-------------------- ----------------------------- -------------
FullDateTimePattern : dddd, MMMM dd, yyyy h:mm:ss tt - Thursday, February 04, 2016 3:51:17 PM
LongDatePattern : dddd, MMMM dd, yyyy - Thursday, February 04, 2016
LongTimePattern : h:mm:ss tt - 3:51:17 PM
MonthDayPattern : MMMM dd - February 04
RFC1123Pattern : ddd, dd MMM yyyy HH':'mm':'ss 'GMT' - Thu, 04 Feb 2016 15:51:17 GMT
ShortDatePattern : M/d/yyyy - 2/4/2016
ShortTimePattern : h:mm tt - 3:51 PM
SortableDateTimePattern : yyyy'-'MM'-'dd'T'HH':'mm':'ss - 2016-02-04T15:51:17
UniversalSortableDateTimePattern : yyyy'-'MM'-'dd HH':'mm':'ss'Z' - 2016-02-04 15:51:17Z
YearMonthPattern : MMMM, yyyy - February, 2016
如您所见,您想要的结果“dd/mm/yyyy”
不存在。要获得它,您必须对其进行硬编码
出于好奇(以下代码不是为了回答问题),这是我用来生成上表的代码:
var culture = CultureInfo.CurrentCulture;
var fmt = culture.DateTimeFormat;
Debug.WriteLine("Current culture: " + culture.Name);
foreach (var prop in fmt.GetType().GetProperties().Where(p => p.Name.EndsWith("Pattern")))
{
var pattern = prop.GetValue(fmt) as string;
Debug.WriteLine("{0,-35}: {1,-35} - {2}", prop.Name, pattern, DateTime.Now.ToString(pattern));
}
你为什么不能把它格式化。。?也不是说dd/mm/yyyyy
与dd/mm/yyyy
不一样,我将发布一个工作示例,说明您需要做什么,您可以测试它不知道我在找什么。见贝库兹的答案。(谢谢你的时间)为什么你不能把它格式化。。?也不是说dd/mm/yyyyy
与dd/mm/yyyy
不一样,我将发布一个工作示例,说明您需要做什么,您可以测试它不知道我在找什么。见贝库兹的答案。(谢谢您的时间)非常感谢!我担心没人会明白我的问题,但你明白了!这就是我要找的,我不知道DateTimeFormat属性和ShortDatePattern。非常感谢!我担心没人会明白我的问题,但你明白了!这就是我想要的,我不知道DateTimeFormat属性和ShortDatePattern。