将日期时间转换为日期格式dd/mm/yyyy。

77
我有一个DateTime对象 2/19/2011 12:00:00 AM。我想要将其转换为一个字符串 19/2/2011
请帮我将DateTime转换为字符串格式。

1
object 是一个 DateTime 吗?通过转换,您的意思是要格式化一个字符串吗?“最可能的答案”如何定义? - The Scrum Meister
1
你想要字符串格式化,还是只需要日期? - Jean Hominal
3
请让您的问题变得清晰得多,明确得多。请阅读http://tinyurl.com/so-hints - Jon Skeet
5
我不太会抱怨懒惰(因为我自己也经常很懒),但这明显是没有仔细查找就提问的情况。看看有多少相关问题存在,甚至包括完全相同的日期格式字符串(我毫不怀疑这正是Aswathi想要的)。 - ntziolis
我认为她的意思是“最佳方法”。 - Ananth
15个回答

117
DateTime dt = DateTime.ParseExact(yourObject.ToString(), "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

string s = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture);

Sandeep,那么你就需要使用 DateTime.TryParse() 方法。 - MCattle
嗨 Karel,你的解决方案很棒,对我有用,但我想获取日期格式类似于“2011年2月19日”。我该怎么做? - 3 rules
ParseExact只接受这种格式'MM/dd/yyyy'吗? - Axel
3
DateTime dt = DateTime.ParseExact("10/1/2016 4:36:37 PM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture); 我收到了一个错误提示: “String was not recognized as a valid DateTime.” - Fazal
@Fazal,你的日期是“1”,而不是“01”,所以请将格式字符串从“dd”更改为“d”。 - Fernando Torres

30

首先,你不会将一个 DateTime 对象转换为某种格式,而是以某种格式显示它。

给定一个 DateTime 对象的实例,你可以通过以下方式以所需格式获取一个格式化的字符串:

DateTime date = new DateTime(2011, 2, 19);
string formatted = date.ToString("dd/M/yyyy");

21

就像其他人说的那样,但请记住CultureInfo.InvariantCulture

string s = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)

或者转义 '/'。


这里InvariantCulture的目的是什么? - user166390
3
并非所有文化都使用斜杠“/”作为日期分隔符,有些会写成dd-MM-yyyy。该框架会将格式字符串中的斜杠“/”转换为当前文化(在执行时)下的日期分隔符。但如果你希望始终使用斜杠“/”作为分隔符,则第二个选项是通过“转义”斜杠“/”,这样ToString方法就不会将其视为日期分隔符,而是将其视为固定字符。转义需要用反斜杠“\”,因此格式应为@"dd/M/yyyy"(@符号是为了避免需要再次转义反斜杠“\”,否则格式应为"dd\/M\/yyyy")。这些格式都相当难读,所以更好的解决方案是修复CultureInfo。 - xanatos

12
您需要将 CultureInfo 传递给方法以获得带有斜线(/)的结果。
DateTime.Now.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture)

10

DateTime.ToString("dd/MM/yyyy") 可能会以 dd-MM-yyyy 格式给出日期。这取决于您的短日期格式。如果短日期格式不符合要求,我们必须像下面这样将字符 '-' 替换为 '/':

 date = DateTime.Now.ToString("dd/MM/yyyy").Replace('-','/');

7
很简单--tostring()接受一个带有这种格式的参数...
DateTime.ToString("dd/MM/yyyy");

4
这是一个方法,它接受datetime(format:01-01-2012 12:00:00)并返回string(format: 01-01-2012)
public static string GetDateFromDateTime(DateTime datevalue){
    return datevalue.ToShortDateString(); 
}

3
你可以使用ToString()方法,如果你想要一个带有正确格式的日期字符串表示。
例如:
DateTime date = new DateTime(2011, 02, 19);
string strDate = date.ToString("dd/MM/yyyy");

3

C# 10 中,你可以使用DateOnly

DateOnly date = new(2011, 02, 19);
string output = date.ToString("dd/M/yyyy", CultureInfo.InvariantCulture);


1
string currentdatetime = DateTime.Now.ToString("dd'/'MM'/'yyyy");

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