C# 不变量区域性中使用的日期时间格式

C# 不变量区域性中使用的日期时间格式,c#,datetime-format,invariantculture,C#,Datetime Format,Invariantculture,我必须在Javascript中预先验证一个字符串,该字符串将是c#中的日期时间。 DateTime解析使用不变量区域性 有人知道为InvariantCulture定义的日期时间格式吗?它或多或少与en us相同,但使用24小时时间而不是12小时am/pm,并填写完整的MM/DD/YYYY var date1 = d.ToString(CultureInfo.InvariantCulture); // "05/21/2014 22:09:28" var date2 = d.ToString(n

我必须在Javascript中预先验证一个字符串,该字符串将是c#中的日期时间。 DateTime解析使用不变量区域性


有人知道为InvariantCulture定义的日期时间格式吗?

它或多或少与en us相同,但使用24小时时间而不是12小时am/pm,并填写完整的MM/DD/YYYY

var date1 = d.ToString(CultureInfo.InvariantCulture);   // "05/21/2014 22:09:28"
var date2 = d.ToString(new CultureInfo("en-US"));       // "5/21/2014 10:09:28 PM"
  • “O”或“O”:
    yyyy-MM-ddTHH:MM:ss.fffffff-zz
  • “R”或“R”:
    ddd,dd-MMM-yyy-HH:mm:ss
  • “s”:
    yyyy-MM-ddTHH:MM:ss
  • “u”:
    yyyy-MM-dd HH:MM:ssZ

资料来源[1]:

这很容易测试

public static void Main()
{
    var d = DateTime.Now;

    Console.WriteLine("Date format (long):  {0}", d.ToString("D", CultureInfo.InvariantCulture));
    Console.WriteLine("Date format (short): {0}", d.ToString("d", CultureInfo.InvariantCulture));
    Console.WriteLine("Full format (long):  {0}", d.ToString("F", CultureInfo.InvariantCulture));
    Console.WriteLine("Full format (short): {0}", d.ToString("f", CultureInfo.InvariantCulture));
    Console.WriteLine("Time format (long):  {0}", d.ToString("T", CultureInfo.InvariantCulture));
    Console.WriteLine("Time format (short): {0}", d.ToString("t", CultureInfo.InvariantCulture));
    Console.WriteLine("General format (long):  {0}", d.ToString("G", CultureInfo.InvariantCulture));
    Console.WriteLine("General format (short): {0}", d.ToString("g", CultureInfo.InvariantCulture));
}
}

输出:

Date format (long):  Monday, 16 October 2017
Date format (short): 10/16/2017
Full format (long):  Monday, 16 October 2017 20:12:45
Full format (short): Monday, 16 October 2017 20:12
Time format (long):  20:12:45
Time format (short): 20:12
General format (long):  10/16/2017 20:12:45
General format (short): 10/16/2017 20:12

编码。

从此处编译信息:

  • 短日期模式(“d”):
    MM/dd/yyyy
  • 长日期模式(“D”):
    dddd,dd-MMMM-yyyy
  • 完整日期短时间(“f”):
    dddd,dd-MMMM-yyy-HH:mm
  • 完整日期长时间(“F”):
    dddd,dd-MMMM-yyyy-HH:mm:ss
  • 一般日期短时间(“g”):
    MM/dd/yyyy HH:MM
  • 一般日期长时间(“G”):
    MM/dd/yyyy HH:MM:ss
  • 月份(“M”、“M”):
    MMMM-dd
  • 往返(“O”、“O”):
    yyyy-MM-ddTHH:MM:ss.FFFFFFF K
  • RFC1123(“R”、“R”):
    ddd,dd-MMM-yyyy-HH:mm:ss-GMT
  • 可排序(“s”):
    yyyy-MM-ddTHH:MM:ss
  • 短时间(“t”):
    HH:mm
  • 长时间(“T”):
    HH:mm:ss
  • 通用可排序(“u”):
    yyyy-MM-dd HH:MM:ssZ
  • 通用完整(“U”):
    dddd,dd-MMMM-yyyy-HH:mm:ss
  • 年-月(“Y”、“Y”):
    yyyy-MMMM

看似
MM/dd/yyyyy
几乎只被美国人使用(
en-US
),但
InvariantCulture
表面上意味着普遍性,如果
InvariantCulture
使用ISO 8601(
yyy-MM-dd
HH:MM:ss
)日期和时间格式,而不是其当前格式。例如,这意味着我不能使用
InvariantCulture
进行适当的文化中立日志记录。