1

我已经为我的问题尝试了各种选择,但似乎没有一个对我有用。我在 # 工作,并且有一个数据类型为 date 的变量,其值为 as {07/03/2013 17:27:02},现在我希望这个日期显示为,03-July-2013但它似乎显示为07-March-2013

一点代码

DateTime publishDate = "07/03/2013 17:27:02"

string publish = publishDate.ToString("dd-MMM-yyyy")

Tried this too: String.Format("{0:MMM d, yyyy}", publishDate )

这就是我正在尝试的,我认为这将是非常简单的转换,但我很震惊。谁能指出我正确的方向

4

5 回答 5

3

这是在 C# 中将日期时间格式化为字符串的参考

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

从外观上看,您需要 String.Format("{0:dd-MMMM-yyyy}", publishDate )。

如果您的日期是 3 月而不是 7 月,那么看起来您的区域格式在某处不正确。这可能是个问题。

于 2013-07-04T16:42:39.520 回答
1

使用“MMMM”显示月份的全名。

Console.Write(DateTime.Now.ToString("dd-MMMM-yyyy"));
// Result: 04-july-2013
于 2013-07-04T16:40:05.463 回答
1

试试这个:

DateTime publishDate = DateTime.ParseEaxct("07/03/2013 17:27:02", 
                           "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

string publish = publishDate.ToString("dd-MMMM-yyyy");

希望这能解决您的问题。

于 2013-07-04T16:45:40.540 回答
0

由于您的日期是在月份和日期值倒置的情况下输出的,因此我会考虑使用:

DateTime.ToString("dd-MMMM-yyyy, CultureInfo.InvariantCulture);

InvariantCulture 不会考虑您的系统文化设置。

于 2013-07-04T16:44:24.457 回答
0

您可以告诉您的数据库为每个日期或时间戳生成正确的格式。这避免了客户端的任何转换错误。

这是 Oracle 的一些示例:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
ALTER SESSION SET NLS_TIME_FORMAT = 'HH24:MI:SS';
ALTER SESSION SET NLS_TIME_TZ_FORMAT = 'HH24:MI:SS TZH:TZM';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'YYYY-MM-DD HH24:MI:SS TZH:TZM';
于 2013-07-04T16:47:26.667 回答