[英]DateTime.ParseExact throws a string format error Unity3D
我一直在嘗試使用DateTime.ParseExact讀取我從數據庫收到的DateTime信息。 接收到的數據為字符串格式,看起來像這樣
"00:10:47:18"
我正在實現的代碼如下:
D = DateTime.ParseExact("00:10:47:18", "dd:HH:mm:ss", null);
其中D是DateTime類型。 但是,我收到一個格式異常,說無效的字符串格式。 我也嘗試過這樣做
D = DateTime.ParseExact("00:10:47:18", "'dd':'HH':'mm':'ss'", null);
但是即使使用上面的代碼也給了我格式異常。 任何幫助我指出正確方向的幫助將不勝感激。 注意:我正在Unity3D中執行此操作,並在C#上進行編碼。
您的數據看起來像持續時間,而不是日期/時間。 您必須為此使用TimeSpan
string input = "00:10:47:18";
TimeSpan output = TimeSpan.ParseExact(input, @"dd\:hh\:mm\:ss", CultureInfo.InvariantCulture);
Unity不支持TimeSpan.ParseExact方法(在.NET 4中引入),因此我想唯一的方法是手動解析:
public static TimeSpan ParseDuration(string input)
{
string[] inputParts = input.Split(':');
string ddString = inputParts[0];
string hhString = inputParts[1];
string mmString = inputParts[2];
string ssString = inputParts[3];
int dd = int.Parse(ddString, CultureInfo.InvariantCulture);
int hh = int.Parse(hhString, CultureInfo.InvariantCulture);
int mm = int.Parse(mmString, CultureInfo.InvariantCulture);
int ss = int.Parse(ssString, CultureInfo.InvariantCulture);
return new TimeSpan(dd, hh, mm, ss);
}
用法:
string input = "00:10:47:18";
TimeSpan output = ParseDuration(input);
這是我從中得到的: https : //msdn.microsoft.com/zh-cn/library/dd992370(v=vs.110).aspx
intervalString = "17:14:48.153";
format = "G";
culture = CultureInfo.CurrentCulture;
interval = TimeSpan.ParseExact(intervalString, format, culture);
//Console.WriteLine("'{0}' --> {1}", intervalString, interval);
從以下網址 編輯 Timespan.Parse: https ://msdn.microsoft.com/zh-cn/library/se73z7b9( v= vs.110).aspx
string value = "6:12:14:45";
string cultureName = "en-US";
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
TimeSpan ts = TimeSpan.Parse(value);
//Console.WriteLine("{0} --> {1}", value, ts.ToString("c"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.