C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.41348 の関連記事表示

<< 0 >>
■41348  Re[1]: VBとOlacleでの、日付の扱いの違いについて
□投稿者/ 魔界の仮面弁士 -(2009/09/18(Fri) 10:48:48)
    Olacle ではなく Oracle です。
    
    
    ■No41343 (jin さん) に返信
    > Dim lsDateValue As Stirng = TextBox1.Text
    Stirng → String
    
    
    > If IsDate(lsDateValue ) = False Then
    IsDate 関数は、その認識範囲が広すぎるので注意が必要です。
    たとえば、これらは True を返します。
    
     IsDate("11PM")
     IsDate("1:2:3.4567890")
     IsDate("1.2.3456")
     IsDate("9876 - 1.23")
     IsDate("M 01 23")
     IsDate("H 01 23 4567")
     IsDate("平成3000年")
     IsDate("午後23時59分2秒")
    
    
    > 入力された日付が、
    > 2009/09/30 この値は上記の判断でTrueとなり、
    > 20090930   この値ですとFalseとなります。
    Date.TryParseExact メソッドを使いましょう。
    解析のための書式を複数指定できますよ。
    
    
    Imports System.Globalization
    
    Module Module1
    
        Private DatePattern() As String = { "yyyyMMdd", "yyyy\/MM\/dd"}
    
        Public Function ToDate(ByVal s As String) As Date?
            Dim d As Date
            Return If(Date.TryParseExact(s, DatePattern, _
                    CultureInfo.InvariantCulture, _
                    DateTimeStyles.None, d), d, DirectCast(Nothing, Date?))
        End Function
    
        Sub Main()
            Dim st() As String = {"20090930", "20099999", "2009/09/30", "2009/99/99"}
            For Each s In st
                Dim dt? = ToDate(s)
                If dt.HasValue Then
                    MsgBox(String.Format("変換成功({0})=>{1}", s, dt.Value), MsgBoxStyle.Information)
                Else
                    MsgBox(String.Format("変換失敗({0})", s), MsgBoxStyle.Exclamation)
                End If
            Next
        End Sub
    
    End Module
記事No.41343 のレス / END /過去ログ71より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -