Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取当前区域的日期格式,如;年月日;_C# - Fatal编程技术网

C# 如何获取当前区域的日期格式,如;年月日;

C# 如何获取当前区域的日期格式,如;年月日;,c#,C#,我正在使用System.Windows.Controls.DatePicker控件。此控件允许用户在日历中选择日期,但也可以直接写入日期 我希望给用户提供如何写这个日期的信息 因此,我基本上是在寻找一种显示常规日期(而不是特定日期)格式的方法 我知道: DateTime dt = DateTime.Now; Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); Console.WriteLine(dt.ToString("

我正在使用System.Windows.Controls.DatePicker控件。此控件允许用户在日历中选择日期,但也可以直接写入日期

我希望给用户提供如何写这个日期的信息

因此,我基本上是在寻找一种显示常规日期(而不是特定日期)格式的方法

我知道:

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。