[英]Convert a short DateTime string with date and time to DateTime
[英]Convert weird date format to short DateTime
我有一个日期字符串,从ExtJS datetime选择器返回,看起来像这样:
Wed Apr 25 2012 00:00:00 GMT+0300 (GTB Daylight Time)
由此,我需要使用C#或JavaScript格式:YYYY-mm-dd。 我该怎么办? 我尝试使用DateTime.Parse,但无法解析。 任何想法?
谢谢!
您似乎并不在乎时间和时区信息,因此实际上您可以使用DateTime.ParseExact
来解析日期。 假设月份中的一天部分可能只是个数字(例如2012-04-01是Sun Apr 1 2012
,星期日),则需要使用的模式是ddd MMM d yyyy
。
“最困难的”部分实际上是时间和时区部分的斩波。 如果一个月中的某天是一位数字,则必须采用长度为14的子字符串; 否则为长度15。这是一种获取字符串中第4个空格字符的索引的方法:
var str = "Wed Apr 25 2012 00:00:00 GMT+0300 (GTB Daylight Time)";
var index = -1;
for (var i = 0; i < 4; i += 1)
index = str.IndexOf(' ', index + 1);
然后,您可以将日期解析为DateTime
:
var date = DateTime
.ParseExact(str.Substring(0, index), "ddd MMM d yyyy", CultureInfo.InvariantCulture);
可以使用所需的任何格式和区域性将其格式化为字符串。
在.NET中,如果日期的字符串表示形式具有保证的格式,则可以使用DateTime.ParseExact
进行解析:
var input = "Wed Apr 25 2012 00:00:00 GMT+0300 (GTB Daylight Time)"
.Substring(0, 15);
var format = "ddd MMM dd YYYY";
var date = DateTime.ParseExact(input, format, CultureInfo.InvariantCulture);
// Now date is a DateTime holding the date
var output = date.ToString("yyyy-MM-dd");
// Now output is 2012-04-25
也许这可以帮助您单击
在JavaScript中
new Date("Wed Apr 25 2012 00:00:00 GMT+0300 (GTB Daylight Time)")
将给您一个日期对象。 然后,您可以通过选择(UTC)年,月和日,将其格式化为日期格式(最好是ISO8601,或者使用.getTime()从epoc到毫秒)。
尝试使用Javascript。
var d = new Date('Wed Apr 25 2012 00:00:00 GMT+0300 (GTB Daylight Time)');
var curr_day = d.getDate();
var curr_month = ('0'+(d.getMonth()+1)).slice(-2)
var curr_year = d.getFullYear();
var new_date = curr_year+"-"+curr_month+"-"+curr_day;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.