【发布时间】:2013-04-19 07:42:48
【问题描述】:
如何将其转换为日期时间?
var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)"
日期格式如"09/06/2011"。我不介意是服务器端还是客户端。
【问题讨论】:
-
@SonerGönül 在 jquery 中没有用于转换为日期时间的方法。我是这个领域的新手。
如何将其转换为日期时间?
var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)"
日期格式如"09/06/2011"。我不介意是服务器端还是客户端。
【问题讨论】:
我认为.Net 框架没有提供任何内置方法来解析这种格式的日期。您可以从字符串中剥离时区的信息,然后像这样解析它:
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)。 你也可以得到'date with time'
在此处参考 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 )
【讨论】:
Date date = new Date(datestring)是你说的吗
你可以拆分字符串,因为每个字符在字符串中都有固定的位置
string splits[] = datestring.Split(' ');
//switch for month "Jun" = 6
string date = string.Format("{0}/{1}/{2}", splits[2], month, splits[3]);
【讨论】:
这就是我想出来的(使用 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");
【讨论】: