2017-01-11 20 views
5

私のコンソールアプリケーションでは、HHmmssにフォーマットしようとしています - >これは自分のデータ型によるものだと確信していますが、どうすればNULLNULLと表示されない1/1/0001 12:00:00 AMDateTime値がDateTime.MinValueのときにNULLになる、またはNULLになる

public static DateTime? fmtLastScanTime;に変更された場合にはこれは私がどのようにすることができます「メソッド用ませオーバーロード 'ToStringメソッドが' 1つの引数

を取らない

のエラーが出る

public static DateTime fmtLST; 
public static string LST = null;   
if (LST != null) 
{ 
    IFormatProvider format = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat; 
    fmtLST = DateTime.ParseExact(LST, "HHmmss", format); 
} 

Console.WriteLine(fmtLST.ToString("hh:mm:ss tt")); 

私の構文ですこのディスプレイは1/1/0001 12:00:00 AMの代わりにNULLですか? 表示されるのは1/1/10001の12:00:00 AMです。

+0

'fmtLST'は'そして 'fmtLST.ToStringは()'例外 –

+1

発生しますnull'なのである。しかし、それは決してnullの場合 - :それは何かのようにする必要があります01/01/0001 12:00:00 AMにデフォルト設定されます。デフォルトの日付/時刻ではなくNULLを返すようにしたい –

答えて

0

がかもしれないが、してみてください、この

IFormatProvider format = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat; 
       fmtLST = DateTime.ParseExact((LST != null ? LST : null), "HHmmss", format); 
+0

それはトリックでした!有難うございます。 –

+0

WC:).......... – Maharshi

3

Nullable DateTime。 null可能なDateTimeはnullでもかまいません。 DateTime構造体自体はnullオプションを提供しません。しかし、"DateTime?"ヌル可能型では、nullリテラルをDateTime型に割り当てることができます。別のレベルのインダイレクションを提供します。

public static DateTime? fmtLST; 
//or 
public static Nullable<DateTime> fmtLST; 

NULL可能日時が最も簡単

編集疑問符構文を使用して指定します

Console.WriteLine(fmtLST != null ? fmtLST.ToString("hh:mm:ss tt") : ""); 

もう一つは

if(fmtLST == DateTime.MinValue) 
{ 
    //your date is "01/01/0001 12:00:00 AM" 
} 
+0

fmtLST変数を使用するので、DateTime.ParseExact(LST、 "HHmmss"、format)をフォーマットできます。あなたの例で私はどのようにフォーマットしますか? –

+0

@ToastedBreadLeavesYouDead解決策の編集部分を見てください –

+0

else条件として "n/a"を使用する必要がありますか?私はそれをelse条件のためにnullに変更しましたが、それは12:00:00に返されました –

0

である可能性があり、私はこのrefrence here発見しました同じ問題のための奉仕

あなたがリンクに行くことができ
using System; 
using System.Text; 
using System.Windows.Forms; 
namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     private void button1_Click(object sender, EventArgs e) 
     { 
      Nullable nullDateTime; 
      //DateTime? nullDateTime = null; 
      nullDateTime = DateTime.Now; 
      if (nullDateTime != null) 
      { 
       MessageBox.Show(nullDateTime.Value.ToString()); 
      } 
     } 
    } 
} 

は、より詳細な情報を見つける おかげ

0

1/1/0001 12:00:00 AMあなたはDateTimeオブジェクトにnullを割り当てたい場合は、それらのように確認する必要がありますを意味し、DateTimeオブジェクトの最小/デフォルト値ですNullable(他の提案のように)。だから、fmtLSTの宣言は次のようになります。あなたがコンソールに出力を印刷する気にする必要があり、この場合には

public static DateTime? fmtLST = null; // initialization is not necessary 

を。

Console.WriteLine(fmtLST.HasValue ? fmtLST.Value.ToString("hh:mm:ss tt") : "Value is null"); 
+0

else条件は "値はNULL"です - 他のものをnullにします。 –

+0

画面に「ヌル」を印刷する方法を教えてください。'Console.WriteLine()'の –

+0

私は値が実際にNULLであることを確認するためにコンソールに書きます。私の手続きの最終結果は、Min.Date値ではないNULL値が必要なSQL Server Tableを更新することです –

関連する問題