日期时间格式为 yyyy-MM-ddT00:00:00。

5

如何将格式为27/10/2014 00:00:00的日期时间转换为2014-10-27T00:00:00?我尝试了使用ToUniversalTime但没有成功。

config.PreferredStartDate = pstnGetWorkingDayInfoResponse.Date.ToUniversalTime();

这里两个日期都是 DateTime 变量

我还尝试了以下方法:

config.PreferredStartDate = Convert.ToDateTime(pstnGetWorkingDayInfoResponse.Date.ToString("yyyy-MM-dd'T'HH:mm:ss"));

2
如果它们都是日期时间,那么为什么需要进行转换?您的意思是您想以不同的方式显示输出吗? - Sayse
1
“没用”不是我们能帮助您解决的错误描述。请说明您做了什么,当您这样做时发生了什么以及您期望发生什么。 - nvoigt
1
DateTime没有格式。ToUniversalTime处理时区,这不是你要求的(我想)。你是在尝试将日期转换为字符串吗?如果是,你不知道如何做吗? - Panagiotis Kanavos
4个回答

8

请看这个:

DateTime dt = DateTime.Now;
String strDate="";
strDate = dt.ToString("MM/dd/yyyy");   // 07/21/2007 
strDate = dt.ToString("dddd, dd MMMM yyyy");   //Saturday, 21 July 2007
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm"); // Saturday, 21 July 2007 14:58
strDate = dt.ToString("dddd, dd MMMM yyyy hh:mm tt"); // Saturday, 21 July 2007 03:00 PM
strDate = dt.ToString("dddd, dd MMMM yyyy H:mm"); // Saturday, 21 July 2007 5:01 
strDate = dt.ToString("dddd, dd MMMM yyyy h:mm tt"); // Saturday, 21 July 2007 3:03 PM
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm:ss"); // Saturday, 21 July 2007 15:04:10
strDate = dt.ToString("MM/dd/yyyy HH:mm"); // 07/21/2007 15:05
strDate = dt.ToString("MM/dd/yyyy hh:mm tt"); // 07/21/2007 03:06 PM
strDate = dt.ToString("MM/dd/yyyy H:mm"); // 07/21/2007 15:07
strDate = dt.ToString("MM/dd/yyyy h:mm tt"); // 07/21/2007 3:07 PM
strDate = dt.ToString("MM/dd/yyyy HH:mm:ss"); // 07/21/2007 15:09:29
strDate = dt.ToString("MMMM dd"); // July 21
strDate = dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK"); // 2007-07-21T15:11:19.1250000+05:30    
strDate = dt.ToString("ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"); // Sat, 21 Jul 2007 15:12:16 GMT
strDate = dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); // 2007-07-21T15:12:57
strDate = dt.ToString("HH:mm"); // 15:14
strDate = dt.ToString("hh:mm tt"); // 03:14 PM
strDate = dt.ToString("H:mm"); // 5:15
strDate = dt.ToString("h:mm tt"); // 3:16 PM
strDate = dt.ToString("HH:mm:ss"); // 15:16:29
strDate = dt.ToString("yyyy'-'MM'-'dd HH':'mm':'ss'Z'"); // 2007-07-21 15:17:20Z
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm:ss"); // Saturday, 21 July 2007 15:17:58
strDate = dt.ToString("yyyy MMMM"); // 2007 July

我是从DateTime格式化中找到的。


1
如果这两个变量都是日期,则该问题毫无意义-日期没有存储在任何特定的“格式”中,任何日期都可以以任何格式显示在屏幕上。如果您想以不同的方式显示它,则这与XML的格式相同。因此,在这种情况下,一种简单的方法是使用内置的XML转换方法,即 XmlConvert.ToString(DateTime)
using System.Xml;
...
config.PreferredStartDate = XmlConvert.ToString(pstnGetWorkingDayInfoResponse.Date);

1
所请求的格式是可排序标准模式。您可以直接编写myDate.ToString("s")而不使用XmlConvert。 - Panagiotis Kanavos

0
你可以使用以下代码:
DateTimeFormatInfo myDTFI = new CultureInfo( "en-US", false).DateTimeFormat;
DateTime date = new DateTime(2014, 10, 27, 0, 0, 0);
string strDate = date.ToString(myDTFI.SortableDateTimePattern);

0

正如M.Azad在上面所回答的,尝试一下

strDate = dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); // 2007-07-21T15:12:57

或者在你的情况下,可能是这样的:
PreferredStartDateToString = pstnGetWorkingDayInfoResponse.Date.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss");

1
显然(从示例代码中可以看出),PreferredStartDate 的类型是 DateTime,因此将其设置为字符串是行不通的。 - Hans Kesting
谢谢@HansKesting,我同意。DateTime没有格式。我假设作者试图将日期转换为字符串以在某个地方使用或显示。 - OlegGuy

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