簡體   English   中英

如何將此字符串轉換為日期時間?

[英]How to convert this string to datetime?

如何將其轉換為日期時間?

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)。 您還可以獲取“有時間的約會”

在這里參考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;

您是否嘗試過將此字符串放入新的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]);

這就是我想出來的(使用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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM