私は次のコードを持っています-
DateTime timeStamp;
timeStamp = System.Convert.ToDateTime(y.InnerText);
どこy.InnerTextにありますか11/03/2013 11:35:24。
しかし、データベースがフォーマットを探しているので、これは私のインポートステートメントを壊しています-
2013-03-11 11:35:24
DateTimeオブジェクトの形式を設定するにはどうすればよいですか?
DateTimeオブジェクトの形式を設定するにはどうすればよいですか?
できません。DateTime値にはフォーマットがありません。intまたはdouble値にはフォーマットがあります。文字列との間で変換する場合は、ここでフォーマット情報を指定します。
代わりに、パラメーター化されたSQLを使用DateTimeし、最初から値を文字列に変換しないようにする必要があります。これは一般的なベストプラクティスです。SQL文字列に値を含めないでください。パラメータ化されたSQLには複数の利点があります。
また、を使用する代わりにConvert.ToDateTime、解析時に予想される形式を指定することをお勧めします。例えば:
timeStamp = DateTime.ParseExact(y.InnerText,
"dd/MM/yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
基本的に、私が適用しようとしている2つのルールは次のとおりです。
このステップを使用します
例 :
DateTime myDateTime = DateTime.Now;
string myDateTimeString = myDateTime.ToString("yyyy-MM-dd hh:mm:ss");
日時をSQLデータベースに渡す場合は、datetime.ToString( "yyyy / MM / dd")形式で試してください。これでうまくいきます。
もう1つ、アプリケーションカルチャの日時形式を追加できます。したがって、これはあなたが望む日時形式を扱います。
using System;
using System.Globalization;
using System.Threading;
namespace test {
public static class Program {
public static void Main() {
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = "yyyy/MM/dd HH:mm:ss";
culture.DateTimeFormat.LongTimePattern = "";
Thread.CurrentThread.CurrentCulture = culture;
Console.WriteLine(DateTime.Now);
}
}
}
基本的に、日付には形式がありません。データベースの場合は、日付型として問題なく渡す必要がありparameter/fieldます。日付を文字列として渡すことはお勧めできません。Datetime type
ただし、それを処理する必要がある場合はnone culture specific date format、パラメーター化されたクエリの(ISO8601またはISO)で日付を渡す方が適切です。そうしないと、異なるカルチャ設定のデータベースサーバーで問題が発生する可能性があります。
たとえば、SQLサーバーの場合、ISO8601で日時を次のように渡すのが安全です(変換中)。
'yyyy-mm-ddThh:mi:ss.mmm' //(no spaces)
ToString変換を2013-03-1111:35:24に使用できます
DateTime timeStamp;
timeStamp = System.Convert.ToDateTime(y.InnerText).ToString("yyyy-MM-dd HH:mm:ss");
そして、DateTimeオブジェクトのToString()メソッドをオーバーライドした場合はどうなりますか?そうすれば、あなたはあなたが望むフォーマットを選ぶことができませんか、そしてそれが使われるたびに、それはそれに煩わされることなくあなたが望むようにフォーマットされます。
これは単なる考えなので、もっと良い解決策があるかどうかはわかりません。
次に、プロパティyear、month、dayを使用して、必要に応じてビルドできます。何かのようなもの:
public override ToString(){
return this.Year + "-" + this.Month + "-" + this.Day;
}
ご挨拶