![](/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.