2017-01-10 1 views
-1

私は、日付文字列をDateTimeオブジェクトに変換するだけでなく、時間文字列をDateTimeオブジェクトに変換する多くの素晴らしいソリューションを発見しました。私が見つけていないことは、同時に両方を行うものです。時間と日付の両方の文字列を組み合わせて単一のDateTimeオブジェクトを作成する

二つの文字列の例は以下のとおりです。

2017年1月10日

午前12:00

これはそれで私の試みです。

C#

var start = model.PublishDate; 
var time = model.PublishTime; 

if(time.Length == 7) 
{ 
    time = "0" + time; 
} 
var dateTimeString = start + " " + time; 

dbSectionProps.PublishDate = DateTime.ParseExact(dateTimeString, 
     new string[] { "M/d/yyyy hh:mm:ss tt", "MM/dd/yyyy hh:mm:ss tt", "M/dd/yyyy hh:mm:ss tt", "MM/d/yyyy hh:mm:ss tt" }, CultureInfo.InvariantCulture, DateTimeStyles.None); 

それがエラーをスローが。どんな提案も素晴らしいだろう。ありがとう!

+2

エラーにはメッセージが関連付けられています。言葉は何ですか? – Plutonix

+4

おそらく、開始文字列と時間文字列の間にスペースを追加する必要があります – Steve

+3

また、あなたの時間変数は長さ8文字に調整されているようです。 ParseExactに必要な部分はどこですか? – Steve

答えて

2

おそらくフレームワークがあなたのために働くようにしてください。サンプル:

string dateString = "1/12/2017"; 
string timeString = "10:55:00 pm"; 

var d = DateTime.Parse(dateString).Date; 
var t = DateTime.Parse(timeString).TimeOfDay; 
DateTime sum = d.Add(t); 

Console.WriteLine(String.Format("{0}\r\n{1}\r\n{2:yyyy-MM-dd HH:mm:ss}", d, t, sum)); 
+0

これはとても有望です。私は試してみるつもりです!それが動作する場合はお知らせします – RyeGuy

+0

これは美しく働いた。ありがとうございました!! – RyeGuy

3

2つの文字列の間にスペースがない場合は、別の問題があります。生成された文字列にはPMまたはAMの指定は含まれませんが、DateTime.ParseExactに指定された書式文字列にはこれらの文字が必要です。

あなたの形式から

string[] formats = new string[] 
{ 
    "M/d/yyyy hh:mm:ss", 
    "MM/dd/yyyy hh:mm:ss", 
    "M/dd/yyyy hh:mm:ss", 
    "MM/d/yyyy hh:mm:ss" 
}; 
dbSectionProps.PublishDate = DateTime.ParseExact(dateTimeString, 
    formats, CultureInfo.InvarianCulture, DateTimeStyles.None); 

をこの要件を削除することができますしかし、あなたの時間の一部がthe format hh cannot work with values bigger than 12ので0-23として指定された時間が含まれている場合、これは動作しません。だから、あなたはあなたの最後の編集を見た後

EDIT
HH

にHHを変更する必要があり、私は、文字列

1/10/2017 12:00 AM 

の正しいフォーマットは秒指定なしとTTとなることを考えます再度

+0

私は本当に洞察に感謝します!私の場合、hhは正しいので、実際には2文字の文字を含めることを望んでいました。 – RyeGuy

+0

しかし、私は文字を削除し、あなたの例を私の中に挿入し、それが実行されているかどうかを調べるつもりです。再度、感謝します!!! – RyeGuy

+1

うまくいきます。それは私のために出発する時です。こんにちは – Steve

関連する問題