23

如何在 C# 中将日期格式转换为 DD-MM-YYYY?我只在寻找 DD-MM-YYYY 格式而不是其他任何东西。

4

16 回答 16

52
string formatted = date.ToString("dd-MM-yyyy");

会做的。

是不同格式的一个很好的参考。

于 2011-01-10T17:38:11.253 回答
13

根据第一个 Google 搜索结果: http ://www.csharp-examples.net/string-format-datetime/

// Where 'dt' is the DateTime object...
String.Format("{0:dd-MM-yyyy}", dt);
于 2011-01-10T17:39:32.980 回答
11

这是最简单的方法。

这是字符串值:“5/13/2012”

DateTime _date;
string day = "";

_date = DateTime.Parse("5/13/2012");
day = _date.ToString("dd-MMM-yyyy");

它将输出为:2012 年 5 月 13 日

于 2013-08-20T09:19:30.307 回答
8
string formattedDate = yourDate.ToString("dd-MM-yyyy");
于 2011-01-10T17:38:09.317 回答
5
DateTime dt = DateTime.Now;

String.Format("{0:dd-MM-yyyy}", dt);
于 2011-01-10T17:40:06.940 回答
3
DateTime s1 = System.Convert.ToDateTime(textbox.Trim());
        DateTime date = (s1);
        String frmdt = date.ToString("dd-MM-yyyy"); 

将工作

于 2011-01-28T06:30:48.450 回答
3
DateTime dt = DateTime.Now;

String.Format("{0:dd-MM-yyyy}", dt);
于 2018-01-29T06:34:52.230 回答
2

首先将您的字符串转换为 DateTime 变量:

DateTime date = DateTime.Parse(your variable);

然后将此变量转换回正确格式的字符串:

String dateInString = date.ToString("dd-MM-yyyy");
于 2011-01-10T18:21:10.480 回答
1

开始了:

DateTime time = DateTime.Now;
Console.WriteLine(time.Day + "-" + time.Month + "-" + time.Year);

作品!:)

于 2016-08-22T06:09:06.780 回答
0

您是否将日期变量存储为字符串或日期类型?

在这种情况下,您需要执行类似的操作

DateTime myDate = null;

DateTime.TryParse(myString,myDate);

或者

Convert.ToDateTime(myString);

然后,您可以在日期变量上调用 ToString("dd-MM-yyyy")

于 2011-01-10T18:20:55.223 回答
0

问题是你试图转换一个字符串,所以首先你应该将你的变量转换为日期,然后应用类似的东西,
string date = variableConvertedToDate.ToString("dd-MM-yyyy")
或者
string date = variableConvertedToDate.ToShortDateString()在这种情况下结果是 dd/MM/yyyy。

于 2015-11-16T12:50:47.517 回答
0

从 C# 6.0 开始(Visual Studio 2015 和更新版本),您可以简单地使用带格式的插值字符串:

var date = new DateTime(2017, 8, 3);
var formattedDate = $"{date:dd-MM-yyyy}";
于 2017-08-03T11:36:48.727 回答
0
dateString = "not a date";  
// Exception: The string was not recognized as a valid DateTime. There is an unknown word starting at index 0.  
DateTime dateTime11; // 1/1/0001 12:00:00 AM  
bool isSuccess2 = DateTime.TryParseExact(dateString, "MM/dd/yyyy", provider, DateTimeStyles.None, out dateTime11); 
于 2021-10-12T11:30:22.390 回答
0

我遇到了同样的问题。我需要做的是在类的顶部添加一个引用并更改当前正在执行的线程的 CultureInfo。

using System.Threading;

string cultureName = "fr-CA";
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);

DateTime theDate = new DateTime(2015, 11, 06);
theDate.ToString("g");
Console.WriteLine(theDate);

您所要做的就是更改文化名称,例如:“en-US” = 美国 “fr-FR” = 讲法语的法国 “fr-CA” = 讲法语的加拿大等...

于 2015-11-06T16:45:47.610 回答
-1
var dateTimeString = "21‎-‎10‎-‎2014‎ ‎15‎:‎40‎:‎30";
dateTimeString = Regex.Replace(dateTimeString, @"[^\u0000-\u007F]", string.Empty);

var inputFormat = "dd-MM-yyyy HH:mm:ss";
var outputFormat = "yyyy-MM-dd HH:mm:ss";
var dateTime = DateTime.ParseExact(dateTimeString, inputFormat, CultureInfo.InvariantCulture);
var output = dateTime.ToString(outputFormat);

Console.WriteLine(output);

试试这个,它对我有用。

于 2017-08-03T11:26:41.327 回答
-1

你可以这样做:

return inObj == DBNull.Value ? "" : (Convert.ToDateTime(inObj)).ToString("MM/dd/yyyy").ToString();
于 2017-11-08T12:06:25.483 回答