如何将SQL日期转换为可读格式
本文关键字:格式 转换 日期 SQL | 更新日期: 2023-09-27 18:21:07
我已经尝试了各种选项来解决我的问题,但似乎没有一个对我有效。我在#中工作,有一个数据类型为date的变量,值为{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 )
这就是我正在尝试的,我原以为这会是一个非常简单的转换,但我被震撼了。有人能给我指一下正确的方向吗?
以下是在C#中将日期时间格式化为字符串的参考
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
从外观上看,您需要String.Format("{0:dd MMMM yyyy}",publishDate)。
如果你的日期是三月而不是七月,那么你的地区格式似乎不正确。。这可能是个问题。
使用"MMMM"显示月份的全名。
Console.Write(DateTime.Now.ToString("dd-MMMM-yyyy"));
// Result: 04-july-2013
试试这个:
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");
希望这能解决你的问题。
由于您的日期是以颠倒的月份和日期值输出的,我会考虑使用:
DateTime.ToString("dd-MMMM-yyyy, CultureInfo.InvariantCulture);
InvariantCulture不会考虑您的系统区域性设置。
您可以告诉数据库为每个日期或时间戳生成正确的格式。这样可以避免客户端出现任何转换错误。
以下是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';