在字符串中保留MM / DD / YYYY格式

时间:2012-02-04 18:44:54

标签: c#

我需要以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格式存储。如果有任何其他方法可以正确分配/转换日期值,请告诉我。

先谢谢

4 个答案:

答案 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)

我通常使用String.Format,前

String.Format("{0:d/M/yyyy HH:mm:ss}", dpStartTime.Value);

将日期格式化为字符串。