[英]Parse TimeSpan 1:00 and 01:00
我想解析一串小時,例如:16:40, 01:00, 12:00, 1:00, 4:90
我的解析方式:
txtManDezStunden.Text = TimeSpan.ParseExact(txtManStunden.Text, "hh':'mm", null).TotalHours.ToString("0.00");
如果 txtManStunden.Text 的輸入為 01:00,則一切正常。當輸入為 1:00 時“失敗”,這是我想捕捉的一種行為。
即使操作員使用“01:00, 001:00, 1:00”作為輸入,有沒有辦法仍然解析
感謝您的任何建議
您可以做幾件事,但這取決於您是否期望小時組件可以是時間跨度中的總小時數(例如TimeSpan.TotalHours
屬性),並且您可以獲得123:00
的輸入來解析. 假設情況並非如此,那么您可以使用TimeSpan.ParseExact
的重載,它采用多種格式字符串,例如:
var input = "001:00";
var formats = new [] { "h':'mm", "'0'h':'mm" };
var timeSpan = TimeSpan.ParseExact(input, formats, null);
但是,如果您確實需要解析123:00
,則需要手動解析字符串。 幸運的是,通過拆分字符串可以很簡單地做到這一點。
var input = "001:00";
var parts = input.Split(':');
var hours = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var timeSpan = new TimeSpan(hours, minutes, 0);
@phuzi 的解決方案有效
我現在使用它嘗試解析的多種格式,現在就像 Charm 一樣工作。
TimeSpan.ParseExact(txtManStunden.Text, new[] { "hh':'mm", "hhh':'mm", "h':'mm", "h", "hh" }, null).TotalHours. ToString("0.00");
我現在無法解析大於 24 的小時數,有什么辦法可以在不破壞當前格式的情況下修復它?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.