簡體   English   中英

C#,將字符串轉換為DateTimeOffset

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

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