[英]C#, convert string to DateTimeOffset
我正在嘗試將字符串轉換為DateTimeOffset。 這是我的字符串2017/010/23:51:50
的示例2017代表年份010代表一年中的某天,而23:51:50是時間。 我正在嘗試以下面的方式,但是它返回我0001-01-01 00:00:00.0000000 +00:00
總是沒有輸入。 我的密碼
DateTimeOffset DateTime;
string year = ("2017/010/23:51:50");
DateTimeOffset.TryParse(year, out DateTime);
有什么建議嗎?
更新為簡單起見,我沒有纏綿我的問題。 我從.txt
文件的名稱獲取日期的日期時間( 2017 it could be 2002, 2001
),日期和時間(其中010/23:51:50
有偏移,而某些內容沒有) .txt
文件。 所以我的輸入並不總是相同的。 希望這可以澄清
首先用/分割字符串,然后使用dayOfTheYear值和年份獲取年/月/日。 接下來拆分時間參數,並使用它來獲取TimeSpan並將其添加到先前獲取的日期。 接下來,只需將您新獲取的日期解析為DateTimeOffset。 此代碼應工作:
string year = ("2017/010/23:51:50");
var date = year.Split('/');
var timeSpanVal = date[2].ToString().Split(':').Select(x=>Convert.ToInt32(x)).ToList();
TimeSpan ts = new TimeSpan(timeSpanVal[0], timeSpanVal[1], timeSpanVal[2]);
DateTime newDate = new DateTime(Convert.ToInt32(date[0]), 1, 1).AddDays(Convert.ToInt32(date[1]) - 1)+ts;
DateTimeOffset.TryParse(newDate.ToString(), out DateTime);
查看日期和時間格式 ,我認為您無法解析格式Year/JulianDay/Time
。 您可以將字符串分成幾部分,然后將年份添加到年份中
string[] parts = year.Split('/');
DateTime dt = new DateTime(int.Parse(parts[0]), 1, 1);
dt = dt.AddDays(int.Parse(parts[1]) - 1).Add(TimeSpan.Parse(parts[2]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.