[英]Converting a time string to append with DateTime object
我有一個時間字符串作為12:48 AM
。 我想將此字符串轉換為TimeSpan
以附加DateTime
對象。 目前我正在嘗試以下代碼段。
string format = "dd/MM/yyyy";
CultureInfo provider = CultureInfo.InvariantCulture;
var date = DateTime.ParseExact(dateValue, format, provider);
string timeFormate = "H:mm AM";
string timeValue = "12:48 AM";
var time = TimeSpan.ParseExact(timeValue,timeFormate,provider);
DateTime launchDate = date + time;
我正進入(狀態
輸入字符串的格式不正確
在線的例外
var time = TimeSpan.ParseExact(timeValue,timeFormate,provider);
請建議我如何將指定的字符串轉換為時間。
您需要將該時間解析為DateTime
,然后在追加到原始日期時簡單地從中提取TimeOfDay
:
using System;
using System.Globalization;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
var dateValue = "10/03/1987";
var date = DateTime.ParseExact(dateValue, "dd/MM/yyyy", CultureInfo.InvariantCulture);
var timeValue = "12:48 AM";
var time = DateTime.ParseExact(timeValue, "h:mm tt", CultureInfo.InvariantCulture);
var dateTime = date + time.TimeOfDay;
Console.WriteLine(date);
Console.WriteLine(time);
Console.WriteLine(dateTime);
}
}
}
OUTPUT:
3/10/1987 12:00:00 AM
11/12/2014 12:48:00 AM
3/10/1987 12:48:00 AM
您可以將其解析為DateTime
並使用它的TimeOfDay
屬性來獲取時間:
DateTime time = DateTime.ParseExact("12:48 AM", "h:mm tt", CultureInfo.InvariantCulture);
DateTime launchDate = date + time.TimeOfDay;
請注意,我也改變了格式字符串,因為你需要tt
的AM / PM指示。
12:48 AM
不是TimeSpan
,它是DateTime
的時間部分。 您需要將其解析為DateTime
,而不是TimeSpan
。
您可以使用添加時間的.TimeOfDay
屬性並將其添加到date
。 此屬性僅返回DateTime
時間部分作為TimeSpan
。
string timeValue = "12:48 AM";
var time = DateTime.ParseExact(timeValue, "h:mm tt", CultureInfo.InvariantCulture);
DateTime launchDate = date + time.TimeOfDay;
從MSDN檢查此頁面,這可以幫助你
http://msdn.microsoft.com/en-us/library/dd992370(v=vs.110).aspx
如果需要DateTime對象
string timeValue = "10:48 AM";
string timeFormate = "h:mm tt";
var dateTime = DateTime.ParseExact(timeValue, timeFormate, CultureInfo.InvariantCulture);
編輯:如果要向給定的DateTime對象添加時間跨度,則應跳過“AM / PM”
string timeValue = "2:30";
DateTime launchTime = DateTime.Now;
TimeSpan timeSpan;
if (TimeSpan.TryParse(timeValue, out timeSpan))
{
launchTime = launchTime.Add(timeSpan);
}
BR
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.