如何将日期格式从DD/MM/YYYY或MM/DD/YYYY更改为YYYY-MM-DD?

21

我需要使用C#更改日期字符串的格式

从:"06/16/2010"或"16/06/2010"

到:"2010-06-16"

你能帮我实现这个吗?

谢谢


请告诉我你不是为了将其包含在 SQL 字符串中而这样做?那是错误的做法。 - Joel Coehoorn
2
@stakx - 对于一个只有8个问题且在这里不到2个月的用户来说,它还没有太多问题。 - Joel Coehoorn
4个回答

36

如果您已经获得了一个 DateTime 对象,可以使用以下代码:

string x = dt.ToString("yyyy-MM-dd");

详情请参见MSDN文档。您可以指定CultureInfo.InvariantCulture来强制使用西方数字等。如果您正在使用MMM来表示月份名称和类似的内容,则更加重要,但明确指出也不是个坏主意:

string x = dt.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);

如果您有一个字符串需要处理,您需要对其进行解析,然后重新格式化... 当然,这意味着您需要知道原始字符串的格式。


1

以下代码将会执行。

string datestring = DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);

1
String dt = Date.Now.ToString("yyyy-MM-dd");

现在你得到了这个dt,2010年09月09日


这将在中间显示“分钟”,而不是“月份”。 - Jon Skeet
1
string dt=Date.Now.ToString("yyyy-MM-dd")我认为现在它显示的是月份。 - user304018

0

我们可以做类似这样的事情

DateTime date_temp_from = DateTime.Parse(from.Value); //from.value" is input by user (dd/MM/yyyy)
DateTime date_temp_to = DateTime.Parse(to.Value); //to.value" is input by user (dd/MM/yyyy)

string date_from = date_temp_from.ToString("yyyy/MM/dd HH:mm");
string date_to = date_temp_to.ToString("yyyy/MM/dd HH:mm");

谢谢


当回答一个旧问题时,如果您包含一些上下文来解释您的答案如何帮助,特别是对于已经有被接受答案的问题,那么您的答案将对其他StackOverflow用户更有用。请参阅:如何撰写好的答案 - David Buck
我感谢您的评论:David Buck - Dilip Kumar Choudhary

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接