3

如何将其转换为日期时间?

var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)"

日期格式如"09/06/2011". 我不介意是服务器端还是客户端。

4

9 回答 9

7

我认为 .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");
于 2013-04-19T07:58:51.273 回答
1

@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/

于 2013-04-19T08:50:25.237 回答
0

这将是一个机会:

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;
于 2013-04-19T07:47:36.653 回答
0

您是否尝试将此字符串放入 new Date(dateString) 的构造函数中?

它对我有用

new Date( datestring )
于 2013-04-19T07:48:05.970 回答
0

您可以拆分字符串,因为每个字符在字符串中都有固定的位置

string splits[] = datestring.Split(' ');
//switch for month "Jun" = 6
string date = string.Format("{0}/{1}/{2}", splits[2], month, splits[3]);
于 2013-04-19T07:51:41.143 回答
0

也许这有帮助: http: //www.codeproject.com/Articles/14743/Easy-String-to-DateTime-DateTime-to-String-and-For

或者这个:将字符串转换为日期时间

于 2013-04-19T07:51:47.150 回答
0

这就是我得出的结果(使用 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
于 2013-04-19T08:03:38.123 回答
0

好吧,我相信.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

于 2013-04-19T08:04:20.867 回答
0

简短而简单,这应该可以解决问题:

更新:从头开始,你甚至不需要我之前的格式提供程序。这似乎工作正常:

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");
于 2013-04-19T08:19:54.963 回答