![](/img/trans.png)
[英]Convert.ToDateTime('Datestring') to required dd-MM-yyyy format of date
[英]Convert.ToDateTime('Datestring') to required dd-MMM-yyyy format of date
我正在嘗試導出到 excel 我有日期字符串,可以是任何日期格式,但我想將其轉換為 dd-MMM-yyyy 格式。 我已經嘗試了每個 Convert.ToDatetime 選項,它只轉換為系統格式。 我希望它轉換 dd-MMM-yyyy 格式。
提前致謝。
List<UnavailableModel> collection = UnavailableBL.GetAllUnavailableDetails(FilteredFacetsJsonString).Result.ToList();
base.Warning(string.Format("Get {0} number of records ", collection.Count));
List<object> obj = new List<object>();
obj.Insert(0, new string[7] { "NAME", "REGION NAME", "MANAGER NAME", "FROM DATE", "TO DATE", "CATEGORY", "COMMENTS" });
int count = 1;
foreach (var audit in collection)
{
DateTime? dt1 = null, dt2 = null;
string StartDate = null, EndDate = null;
if (audit.FromDate != null)
{
dt1 = Convert.ToDateTime(audit.FromDate);
StartDate = dt1.ToString().Substring(0, 10);
}
if (audit.ToDate != null)
{
dt2 = Convert.ToDateTime(audit.ToDate);
EndDate = dt2.ToString().Substring(0, 10);
}
obj.Insert(count, new string[7]{
string.Format("\"{0}\"", audit.Region_Name),
string.Format("\"{0}\"", audit.First_Name+"
"+audit.Last_Name),
string.Format("\"{0}\"", audit.Manager_First_Name+" "+audit.Manager_Last_Name),
string.Format("\"{0}\"", StartDate),
string.Format("\"{0}\"", EndDate),
string.Format("\"{0}\"", audit.Category),
string.Format("\"{0}\"", audit.Comments)
});
count++;
}
base.Warning(string.Format("Data table created "));
for (int i = 0; i < obj.Count; i++)
{
string[] stringCSV = (string[])obj[i];
for (int j = 0; j < stringCSV.Length; j++)
{
//Append data with separator.
sb.Append(stringCSV[j] + ',');
}
//Append new line character.
sb.Append("\r\n");
}
首先, DateTime
沒有 format 。 它在內部存儲為 integer 代表自 0001 年 1 月 1 日以來的滴答數。 DateTime
僅在顯示時“具有格式”。 只有在它被轉換為string
之后(無論是使用當前文化的默認格式,還是在調用ToString
時明確指定的格式)。
其次,這條線毫無意義:
dt1 = Convert.ToDateTime(audit.FromDate);`
由於FromDate
已經是DateTime
,您需要做的就是直接分配它:
dt = audit.FromDate;
但是你把事情搞混了。 您不能將格式化的 Date ( string
)分配給DateTime
變量。 將您的日期格式化為string
並將其存儲為string
變量並將其傳遞給您的 Excel 構建方法:
string EndDate = audit.FromDate.ToString("dd-MMM-yyyy");
您的代碼中絕對不需要DateTime.Parse
、 DateTime.TryParse
、 DateTime.TryParseExact
或Convert.ToDateTime
。 您已經擁有了所需的一切,而無需執行任何不必要的“轉換”。
如果您手頭有 DateTime,則可以將其寫為 excel 中的字符串,如下所示:
StartDate = dt1.ToString("dd-MMM-yyyy");
然后使用該字符串輸入 excel。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.