簡體   English   中英

DateTime.ToString()無法按預期使用斜杠作為日期分隔符

[英]DateTime.ToString() does not work as expected with slash as date-separator

我想將日期時間轉換為“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`. 

這有什么問題。

你的文化文化的日期分隔符似乎是-這就是你得到它的原因。 您必須指定InvariantCulture

string dateString = dt.toString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);  

請參閱: “/”自定義格式說明符

“/”自定義格式說明符表示日期分隔符,用於區分年,月和日。 從當前或指定區域性的DateTimeFormatInfo.DateSeparator屬性中檢索適當的本地化日期分隔符。

另一種方法是使用\\來逃避/

string dateString = dt.toString(@"MM\/dd\/yyyy HH\:mm");  

但在我看來,如果你已經知道/作為“當前文化的日期分隔符”的特殊含義,那么使用正確的CultureInfo (或InvariantCulture )會更好(就可讀性而言)。

這取決於您當前的文化日期分隔符。 嘗試包括InvariantCulture,如下所示:

var dateStringFormat= dt.toString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);  

來自@TimSchmelter的答案的另一種方法是轉義特殊符號/:因此它們不被視為日期和時間分隔符。

var dateString = dt.toString(@"MM\/dd\/yyyy HH\:mm");

您將在轉換日期和時間時指定格式,即DateTime.Now.ToString(“MM / dd / yyyy hh:mm ss tt”)

更多參考。 http://msdn.microsoft.com/en-us/library/system.datetime.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM