Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET将日期时间转换为可排序的日期/时间模式(“s”);_C#_.net_Datetime_Format - Fatal编程技术网

C# .NET将日期时间转换为可排序的日期/时间模式(“s”);

C# .NET将日期时间转换为可排序的日期/时间模式(“s”);,c#,.net,datetime,format,C#,.net,Datetime,Format,我正在使用VS2008、.NET和C#,我需要向我们的一个客户发送一个DATETIME变量 问题是他们希望日期的格式为可排序的日期/时间模式(“s”) 当我得到实际的datetime时,它是一个datetime对象。当我将它格式化为给定格式时,它现在是一个字符串对象,并且它具有我想要的格式。但是在那之后,我不能用相同的格式从格式化字符串创建Datetime对象,因为它总是返回原始的Datetime格式 更具体地说: DateTime currTime = System.DateTime.Now;

我正在使用VS2008、.NET和C#,我需要向我们的一个客户发送一个DATETIME变量

问题是他们希望日期的格式为可排序的日期/时间模式(“s”)

当我得到实际的datetime时,它是一个datetime对象。当我将它格式化为给定格式时,它现在是一个字符串对象,并且它具有我想要的格式。但是在那之后,我不能用相同的格式从格式化字符串创建Datetime对象,因为它总是返回原始的Datetime格式

更具体地说:

DateTime currTime = System.DateTime.Now; //(the format is "13/08/2010 09:33:57 a.m.")

String date = String.Format("{0:s}", currTime);// (wanted format "2010-08-13T09:33:57")

DateTime newDate = DateTime.Parse(date);// (original format again "13/08/2010 09:33:57 a.m.")

IFormatProvider culture = new System.Globalization.CultureInfo("", true); //(Invariant Culture)
String format = "s";                        
DateTime fecha = DateTime.ParseExact(date, format, culture); // (original format again "13/08/2010 09:33:57 a.m.")
是否有方法获取具有所需格式的Datetime对象,或者Datetime对象使用给定格式,而您不能将其格式化为等效的字符串格式


Thx

A
DateTime
只是一个数字。它没有内在的“格式”。仅当转换为字符串时,才会将其呈现为格式。因此,当您需要一个日期时间作为字符串时,您必须指定您想要它的格式

String date = String.Format("{0:s}", currTime);
这可能会稍微短路到:

String date = currTime.ToString("s");

每次在需要转换为字符串的位置使用
DateTime
值时(例如在
string.Format()
中),C#通常会调用
.ToString()
方法。
DateTime
类型声明了一个
.ToString()
方法,该方法具有您不想要的格式

但是,
DateTime
还有其他方法,包括
.ToString(IFormatProvider)
.ToString(字符串格式)

因此,如果将相关类似字符串的上下文中的
DateTime
变量的每次使用都替换为调用相应的
.ToString
重载的变量,则可能可以实现所需的功能,例如:

而不是

var message = string.Format("The parcel was sent on {0}.", currTime);
使用

var message = string.Format("The parcel was sent on {0}.", currTime.ToString("s"));

如果我对这个问题理解正确,我想你会感到困惑。
DateTime
对象本身是不可格式化的,它本质上只是一个数值(自
DateTime.MinValue
以来的刻度数或其他数值)


您可以将
DateTime
对象转换为
string
表示形式,格式可以任意,但您不会更改实际的
DateTime
对象。

请下载者解释一下这个答案有什么问题吗?我不知道,从我这里取一个+1来抵消它。Hmmm。。我打了两次
DataTime
??看看在执行以下语法字符串date=currTime.ToString(“s”)后,当我没有Intellisense时会发生什么;输出将为2014-01-29T11:25:29现在您可以将此dateTime格式保存到dateTime类型的变量中吗?