簡體   English   中英

在c#中將時間字符串轉換為DateTime

[英]Convert time string to DateTime in c#

如何根據字符串獲取DateTime

例如:如果我有mytime = "14:00"

如何以當前日期作為日期獲取DateTime對象,除非當前時間已經是14:00:01,那么日期應該是第二天。

這就像使用精確格式解析DateTime一樣簡單。

可以實現

var dateStr = "14:00";
var dateTime = DateTime.ParseExact(dateStr, "H:mm", null, System.Globalization.DateTimeStyles.None);

DateTime.ParseExact() (msdn link)方法只允許您傳遞希望的格式字符串作為解析字符串以返回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);

您可以使用DateTime.TryParse() :它將日期和時間的指定字符串表示形式轉換為其DateTime等效項,並返回一個值,指示轉換是否成功。

string inTime="14:00";
DateTime d;

if(DateTime.TryParse(inTime,out d))
{
   Console.WriteLine("DateTime : " + d.ToString("dd-MM-yyyy HH:mm:SS"));
} 

這里的工作示例

有一個日期時間構造函數

public DateTime(
    int year,
    int month,
    int day,
    int hour,
    int minute,
    int second
)

因此,然后解析字符串以查找小時,分鍾和秒,並使用Datetime.Now.Day提供的其他參數將其提供給此構造函數,依此類推。

我想你想做這樣的事情:

string myTime = "14:00";            
var v = myTime.Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
DateTime obj = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, int.Parse(v[0]), int.Parse(v[1]), DateTime.Now.Second);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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