簡體   English   中英

DateTime.ParseExact引發字符串格式錯誤Unity3D

[英]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.

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