如何在C#中将日期转换为MM/DD/YY格式

31

在我的Asp.net网页中,我需要将今天的日期显示在一个文本框中,因此在我的表单加载时,我编写了以下代码

textbox1.text = System.DateTime.Today.ToShortDateString();

这行代码给我的日期格式类似于1/7/09,但我想要的日期格式是01/07/09。有没有办法在C#中将这个日期转换成mm/dd/yy格式?


2
这个页面是关于C#字符串格式化的一个很好的参考:http://blog.stevex.net/index.php/string-formatting-in-csharp/ - Andrew Hare
5个回答

59
 DateTime.Today.ToString("MM/dd/yy")

查看自定义日期和时间格式字符串文档以获取更多信息。

(哦,希望这个应用程序不是注定要面向其他文化。那种格式可能会让很多人感到困惑...说实话我从来没有理解过整个月/日/年的事情。按照这样的尺度进行“中低高”排序似乎很奇怪。)


我完全同意奇怪的事情,尽管更可能是我的英国成长经历让dd/MM/yy对我更有意义。 - ZombieSheep
2
无论是 yy/MM/dd 还是 dd/MM/yy,它们都有一致性的优势 - 它们要么向上,要么向下移动重要性标度。 - Jon Skeet
yyyyMMdd 是兼容于2000年的,可以很好地排序...我支持它。 - AnthonyLambert
我其实从来没有理解为什么其他国家首先使用dd。我同意yy/MM/dd是最佳选择,但无法理解MM/dd的价值或意义。当有人在英国问你的出生日期时,你会说1970年1月1日还是1月1日1970年?后者似乎很愚蠢。 - Matt
@Matt: 我会不一样 - 我通常可以互换地说“六月十九日”或“June 19th”。 - Jon Skeet
如果您是在纸上保留记录(从最重要到最不重要),那么MM/dd日期格式就非常有意义。大多数记录都会按年度批次保存,因此年份在记录保留方面并不相关(所有数据来自同一年)。当您开始收集更多数据并需要开始跟踪年份时,只需简单地事后“附加年份”即可将格式更改为MM/dd/yyyy。 - Jefferey Cave

8

DateTime.Today.ToString("MM/dd/yy")

请查看自定义日期和时间格式字符串的文档,以获取更多信息。

(哦,我希望这个应用程序不会面向其他文化。那种格式可能会让很多人感到困惑……说实话,我从来没有理解过整个月份/日期/年份的事情。在这种尺度上按照“中低高”的顺序似乎很奇怪。)

其他文化确实是一个问题。例如,在葡萄牙语中,该代码返回类似于01-01-01而不是01/01/01的内容。我也不明白为什么会这样……

为了解决这个问题,我会做出如下调整:

        IFormatProvider yyyymmddFormat = new System.Globalization.CultureInfo(String.Empty, false);
        return date.ToString("MM/dd/yy", yyyymmddFormat);

4

您尝试过以下方法吗?

textbox1.text = System.DateTime.Today.ToString("MM/dd/yy");

请注意,2位数字年份在未来可能会有问题...


1
@Herbert 哈哈哈,是的,它...会...被替换掉。就像他说的那样 ^^ :D - BenAlabaster
在服务器端用一行代码清理,而不需要混乱的JavaScript,太好了。 - JoshYates1980

0

看这里,你可以通过传递格式字符串来仅获取日期。 您可以根据当前日期的要求获取不同的日期格式,如下所示:

DateTime.Now.ToString("M/d/yyyy");
结果:"2016年9月1日"
DateTime.Now.ToString("M-d-yyyy");
结果: "9-1-2016"
DateTime.Now.ToString("yyyy-MM-dd");
结果:“2016年9月1日”
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
结果:"2016-09-01 09:20:10"

更多详情请查看{{link1:MSDN自定义日期和时间格式字符串参考}}。


0

可以尝试使用带有指定格式的ToString()方法。


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