如果我运行以下C#代码
var cultureInfo = new System.Globalization.CultureInfo("af");
Console.WriteLine(cultureInfo.DateTimeFormat.ShortDatePattern);
我得到了yyyy-MM-dd的输出。
但是,如果我在客户端上使用momentjs并运行以下代码
var localeData = moment.localeData('af');
console.log(localeData._config.longDateFormat.L);
我得到DD / MM / YYYY的输出。
为什么他们不一样?研究表明,一个人可能是正确的。如果我在客户端中输入日期然后尝试在服务器上解析它,则会出现此问题。
答案 0 :(得分:3)
var cultureInfo = new System.Globalization.CultureInfo("af");
等同于
af-ZA Afrikaans - South Africa 0x0436 AFK
Date and time notation in South Africa
南非签署了使用ISO 8601的日期和时间 1998年通过国家标准ARP 010:1989表示 最近的南非标准局标准SANS 8601:2009 “......是ISO 8601:2004的相同实施,并被采用 经国际组织许可 标准化“并于2016年进行了审核。
日期备注
即便如此,旧的日期格式仍然在格式中常用 “dd / mm / yyyy”,“日月份”订单更常见 非数字月份名称。
https://en.wikipedia.org/wiki/ISO_8601
YYYY-MM-DD or YYYYMMDD
.NET Framework Cultures with Date and Time String Formats
English Name Abbreviation ShortDate Format
Afrikaans (South Africa) af-ZA yyyy/MM/dd
诚实地说:momentjs
似乎错了