2017-09-18 7 views
-1

データベースの値を取得するために変数を分割する必要があります。今日私のフルリターンは「2017-09-15T14:01:46」となりました。私は2017-09-15と14:01しか必要としませんでした。インデックスと長さは、シーケンス内の場所を参照する必要があります

.Substring(0.10)サブリング(11,16)を試してみると、問題のタイトルにあるエラーが発生します。

+2

ハンディダンディ 'DateTime'タイプは、あなたが簡単に日付と時刻の部分を取得することが可能になります。 [ask]を読んで[ツアー]を受けてください – Plutonix

答えて

0

あなたは常にあなたの結果文字列に資本Tを持っていると仮定すると

dim xValue as string = "2017-09-15T14: 01: 46" 
dim xStr() as string = xValue.split("T") 
dim xDate as string = "" 
dim xTime as string = "" 

if xstr.count>0 then 
    xDate = xStr(0) 
    xTime = xStr(1) 
end if 

または

dim xValue as string = "2017-09-15T14: 01: 46" 
dim xDate as string = strings.left(xValue, 10) 
dim xTime as string = strings.mid(xValue, 12) 
+0

2番目のオプションを使用している場合は、try catchブロックにこれを挿入して、互換性のない文字列、または何らかの理由で文字列がクラッシュしないようにしてください –

0

サブストリング関数の引数が間違っています。

(あなたのケース16内)機能のサブストリングの2番目の引数は、関数がで終了する必要がインデックスを返すとしません文字の量にする必要がある。

これは、サブストリングのようなもので動作します(11、5)。ここで、5は返された部分文字列の長さです。

Dim temp_date As String = "2017-09-15T14: 01: 46" 
    Dim main_date As String = temp_date.Substring(0, 10) 
    Dim main_time As String = temp_date.Substring(11, 6) 

OR

AustinS90によって提案されたDateTimeオブジェクトを使用して、より良いアプローチ(これは時間の多くにフォーマットされた文字列をサポートします):

Dim temp_date As DateTime = DateTime.Parse("2017-09-15T14: 01: 46") 
    Dim main_date As String = temp_date.Year() & "-" & temp_date.Month() & "-" & temp_date.Day 
    Dim main_time As String = temp_date.Hour & ":" & temp_date.Minute 
0

をそうVB.NETでは、使用することができますDateTimeメソッド。 DateTimeから、DateTime.DateまたはDateTime.ToShortDateString(日付のみ)やDateTime.ToShortTimeString(時刻)のような処理を行うことができます。

関連する問題