我想将日期时间转换为“MM / dd / yyyy”,当我转换为此格式时,日期变得像“xx-xx-xxxx”。我写了像
这样的代码 var format = "MM/dd/yyyy HH:mm";
DateTime dt = DateTime.Now;
var dateString = dt.toString(format); // the value i am getting is 05-28-2014 12:47 but i require the 'dateString' value to be `05/28/2014 12:53`.
有什么问题。
答案 0 :(得分:21)
你的文化文化的日期分隔符似乎是-
,这就是你得到它的原因。您必须指定InvariantCulture
:
string dateString = dt.toString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
请参阅:The "/" Custom Format Specifier
“/”自定义格式说明符表示日期分隔符 用于区分年,月和日。适当的 从中检索本地化日期分隔符 当前或指定的DateTimeFormatInfo.DateSeparator属性 培养强>
另一种方法是使用/
转义\
:
string dateString = dt.toString(@"MM\/dd\/yyyy HH\:mm");
但在我看来,如果你已经知道/
作为“当前文化的日期分隔符”的特殊含义,那么使用正确的CultureInfo
(或{更好(在可读性方面) {1}})而不是。
答案 1 :(得分:2)
这取决于您当前的文化日期分隔符。尝试按如下方式包含InvariantCulture:
var dateStringFormat= dt.toString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
答案 2 :(得分:1)
@ TimSchmelter回答的另一种方法是转义特殊符号/
和:
,这样它们就不会被视为日期和时间分隔符。
var dateString = dt.toString(@"MM\/dd\/yyyy HH\:mm");
答案 3 :(得分:0)
您将在转换日期和时间时指定格式,即DateTime.Now.ToString(" MM / dd / yyyy hh:mm ss tt")
更多参考。 http://msdn.microsoft.com/en-us/library/system.datetime.aspx