我需要以MM / DD / YYYY格式写日期。从日期选择器控件。我尝试将其分配给DateTime变量。在将其写入文件之前,我将其分配给字符串。我看到存储在String变量中的值是DD / MM / YYYY格式。
以下是作业陈述
DateTime startTime, endTime;
string startTimeDate = "";
startTime = Convert.ToDateTime(dpStartTime.Value.ToString("MM/dd/yyyy HH:mm"));
endTime = Convert.ToDateTime(dpEndTime.Value.ToString("MM/dd/yyyy HH:mm"));
startTimeDate = startTime.ToString("MM/dd/yyyy HH:mm");
startTimeDate = startTimeDate.Replace('-', '/');
我观察到startTimeDate仅存储为DD / MM / YYYY。 startTime仅以MM / DD / YYYY格式存储。如果有任何其他方法可以正确分配/转换日期值,请告诉我。
先谢谢
答案 0 :(得分:5)
编辑:
您在Convert.DateTime()
转换中丢失了原始日期,您还必须在此处应用格式字符串,例如使用DateTime.ParseExact
:
startTime = DateTime.ParseExact(dpStartTime.Value.ToString("MM/dd/yyyy HH:mm"),
"MM/dd/yyyy HH:mm",
CultureInfo.InvariantCulture);
答案 1 :(得分:2)
如果您可以确保日期时间格式并且想要忽略系统设置,请尝试使用Convert.ToDateTime()
,而不是使用DateTime.ParseExact(string s, string format, IFormatProvider provider)
。可以找到DateTime.ParseExact()方法的MSDN参考here
答案 2 :(得分:0)
您正在将DateTime
转换为字符串,然后使用DateTime
课程将其再次转换为Convert
。您未在此处保留格式,因为DateTime
与格式无关。默认ToString
转换(由调试器使用)在您的原因MM / DD / YYYY中。
答案 3 :(得分:0)