-1
我需要轉換20141013T155544.673-04/0爲DateTime C#
20141013T155544.673-04/0
轉換爲datetime型。
目前我手動解析字符串了
//20130605T154727.683-04/0
//20130806T143808.018-04
//var a = new DateTime();
var year = segmentDate[0].ToString(CultureInfo.InvariantCulture) + segmentDate[1].ToString(CultureInfo.InvariantCulture) + segmentDate[2].ToString(CultureInfo.InvariantCulture) + segmentDate[3].ToString(CultureInfo.InvariantCulture);
var month = segmentDate[4].ToString(CultureInfo.InvariantCulture) + segmentDate[5].ToString(CultureInfo.InvariantCulture);
var day = segmentDate[6].ToString(CultureInfo.InvariantCulture) + segmentDate[7].ToString(CultureInfo.InvariantCulture);
//s[8] == "T";
var hours = segmentDate[9].ToString(CultureInfo.InvariantCulture) + segmentDate[10].ToString(CultureInfo.InvariantCulture);
var minutes = segmentDate[11].ToString(CultureInfo.InvariantCulture) + segmentDate[12].ToString(CultureInfo.InvariantCulture);
var seconds = segmentDate[13].ToString(CultureInfo.InvariantCulture) + segmentDate[14].ToString(CultureInfo.InvariantCulture);
string milliseconds = null;
if (segmentDate.Contains("."))
milliseconds = segmentDate.Split('.')[1].Split('-')[0];
if (milliseconds != null && milliseconds.Contains((" ")))
{
milliseconds = milliseconds.Split(' ')[0];
}
var offset = Convert.ToInt32(segmentDate.Split('-')[1].Split('/')[0]);
var a = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month),
Convert.ToInt32(day), Convert.ToInt32(hours), Convert.ToInt32(minutes),
Convert.ToInt32(seconds), Convert.ToInt32((milliseconds ?? "0"))).AddHours(offset);
但是,這是一個壞主意 - 我不能相信這心不是格式指定的地方(即我已經能找到)。
任何幫助表示讚賞。
謝謝!
更新
4 digit year
2 digit month
2 digit day
T - denotes start of the time portion
2 digit hour
2 digit minute
2 digit second
. - denotes start of MS
3 digit ms
TZ offset (-04)
/0 I believe is offset minutes
UPDATE2
所以我一直在玩TryParseExact和ParseExact - 並不能拿出一個格式字符串,將拉成一個DateTime /的DateTimeOffset類型此。
我也諮詢過這個值的供應商,他們也有一個手動過程來解析它,就像我已經發布的一樣。
我不能接受這是實現預期結果的唯一方法,因此,它將繼續發揮它的作用。
但是,如果任何人有建議,他們歡迎在這裏。
您是否嘗試過使用'DateTime.TryParseExact' – 2014-12-02 17:38:30
你知道什麼是0.673之後的部分應該是 – lenniep 2014-12-02 17:43:36
@ DanielA.White - ?現在要把它 - lenniep - 它的偏移 – Wjdavis5 2014-12-02 17:44:19