我想这样转换日期(frensh):25/02/2019 => 25Fév2019 我可以使用字符串值:
date.ToString("dd MMM yyyy");
但是此返回字符串和我需要一个日期类型,因为我将在图表中将其用作值。
我尝试过这个:
var formats = new[] { "dd MMM yyyy" };
var date = DateTime.ParseExact("25/02/2019", DateFormat,
System.Globalization.CultureInfo.CurrentCulture,
System.Globalization.DateTimeStyles.AssumeLocal);
但出现错误
“该字符串未被识别为有效的DateTime吗?”
答案 0 :(得分:3)
这是一个基本问题,新开发人员没有了解DateTime
和它的 text 表示形式(也称为string
)之间的区别。不用担心,我们都有相同的问题。
DateTime
不具有任何格式。它只具有日期和时间值。并且它的计算结果为long
,称为Ticks
。
另一方面,您想要的25 Fév 2019
是它的文本表示,这意味着它是string
。您不能将{25}用作DateTime
,但可以将其作为string
。
假设您有一个"25/02/2019"
作为string
,并且您想将其解析为DateTime
。在这种情况下,您可以像以前一样使用DateTime.ParseExact
。
DateTime myDateTime = DateTime.ParseExact("25/02/2019", "dd/MM/yyyy",
CultureInfo.InvariantCulture);
现在您有了一个DateTime
,并且可以得到具有.ToString()
method和法语(fr-FR
)文化的文本(又称字符串)表示形式。
string myString = myDateTime.ToString("dd MMM yyyy", new CultureInfo("fr-FR"));
顺便说一句,在fr-FR
文化中,缩写的月份名称是févr.
,而不是Fév
。据我所知,fr
,fr-FR
或fr-CA
都没有该字符串。要获得所需的内容,必须删除最后2个字符,并使第一个字符大写。
答案 1 :(得分:1)