如何将其转换为日期时间?
var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)"
日期格式如"09/06/2011"
. 我不介意是服务器端还是客户端。
我认为 .Net 框架没有提供任何 BuiltIn 方法来解析这种格式的日期。您可以从字符串中删除时区的信息,然后将其解析为:
var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)";
DateTime dt = DateTime.ParseExact(datestring.Substring(0, 24),
"ddd MMM dd yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
稍后您可以将其格式化为:
string formattedDate = dt.ToString("dd/MM/yyyy");
@Naidu,你可以自己做这个客户端。
如果您在 kendo ui 中工作,则可以选择日期格式,否则您可以使用纯 javascript
在 kendoUI 中:
var dateString = 'Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)';
// Date Formating in Kendo
alert(kendo.toString(new Date(dateString), 'dd/MM/yyyy'));
在 javascript 中:
// Date Formating in Javascript
var date = new Date(dateString);
alert(date.getDate() + '/' + Number(date.getMonth() + 1) + '/' + date.getFullYear());
两个输出都会按照您的要求给出结果(09/06/2011)。您还可以获取“日期与时间”
在此处参考 jsFiddle:http: //jsfiddle.net/pTcJh/1/
这将是一个机会:
string day = datestring.SubString(8, 2);
string month = datestring.SubString(4, 2);
switch(month)
{
case "Jun":
month = "06";
break;
}
string year = datestring.SubString(11, 4);
string date = day + "/" + month + "/" + year;
您是否尝试将此字符串放入 new Date(dateString) 的构造函数中?
它对我有用
new Date( datestring )
您可以拆分字符串,因为每个字符在字符串中都有固定的位置
string splits[] = datestring.Split(' ');
//switch for month "Jun" = 6
string date = string.Format("{0}/{1}/{2}", splits[2], month, splits[3]);
也许这有帮助: http: //www.codeproject.com/Articles/14743/Easy-String-to-DateTime-DateTime-to-String-and-For
或者这个:将字符串转换为日期时间
这就是我得出的结果(使用 Linqpad):
String datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)";
var d = datestring.Split(new char[] {' '}, 5).Take(4);
DateTime dt = DateTime.Parse(d.Aggregate((x, y) => x + " " + y));
dt.Dump();
结果:
09.06.2011 00:00:00
好吧,我相信.NET Framework中没有直接的方法来解析这种字符串。
这是一个肮脏的方式:)
string datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)";
string[] s1 = datestring.Split(new string[]{" "}, 6, StringSplitOptions.RemoveEmptyEntries);
string date = "";
for (int i = 0; i < 5; i++)
{
date = date + s1[i] + " ";
}
date = date.TrimEnd();
DateTime yourdatetime = DateTime.ParseExact(date, "ddd MMM dd yyyy HH:mm:ss", CultureInfo.InvariantCulture);
Console.WriteLine(yourdatetime);
输出会像;
6/9/2011 12:00:00 AM
这是一个DEMO
.
您可以从以下位置查看更多自定义日期格式Custom Date and Time Format Strings
简短而简单,这应该可以解决问题:
更新:从头开始,你甚至不需要我之前的格式提供程序。这似乎工作正常:
var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)";
var date = DateTime.Parse(new string(datestring.Take(24).ToArray()));
date.ToString("dd/MM/yyyy");