如何根据字符串获取DateTime
例如:如果我有 mytime = "14:00"
如何DateTime以当前日期作为日期获取对象,除非当前时间已经是14:00:01,那么日期应该是第二天.
Nic*_*ico 12
这就像DateTime使用精确格式解析a一样简单.
可以实现
var dateStr = "14:00";
var dateTime = DateTime.ParseExact(dateStr, "H:mm", null, System.Globalization.DateTimeStyles.None);
Run Code Online (Sandbox Code Playgroud)
该DateTime.ParseExact()(MSDN链接)方法只允许你传递你想作为你解析字符串返回格式字符串DateTime结构.现在,Date当没有提供日期部分时,此字符串的部分将默认为今天的日期.
回答第二部分
如何以当前日期作为日期获取DateTime对象,除非当前时间已经是14:00:01,那么日期应该是第二天.
这也很简单,因为我们知道DateTime.ParseExact将返回今天的日期(因为我们已经提供了一个日期部分),我们可以将我们的解析日期与之比较DateTime.Now.如果DateTime.Now大于我们的解析日期,我们会在解析日期添加1一天.
var dateStr = "14:00";
var now = DateTime.Now;
var dateTime = DateTime.ParseExact(dateStr, "H:mm", null, System.Globalization.DateTimeStyles.None);
if (now > dateTime)
dateTime = dateTime.AddDays(1);
Run Code Online (Sandbox Code Playgroud)
您可以使用DateTime.TryParse(): 它将日期和时间的指定字符串表示形式转换为其DateTime等效形式,并返回一个指示转换是否成功的值。
string inTime="14:00";
if(DateTime.TryParse(inTime,out DateTime dTime))
{
Console.WriteLine($"DateTime : {dTime.ToString("dd-MM-yyyy HH:mm:SS")}");
}
Run Code Online (Sandbox Code Playgroud)
工作示例在这里
| 归档时间: |
|
| 查看次数: |
15587 次 |
| 最近记录: |