0

誰かが私がこれをフォーマットするのを手伝ってくれますか?テキストボックスに(日付は10222012です)

出力は次のようになります(日付は2012年10月22日)テキストはまだそこにあるはずですありがとうございます

4

1 に答える 1

0

頭のてっぺんからいくつかのアプローチ。

テキストが1つの変数からのものである場合、次に例を示します。

Dim MyText As String = "The date is 10222012"

次に、文字列関数を使用して日付を取得し(常に8文字であると想定しますが、これは危険な想定となる可能性があります)、フォーマットして元に戻すことができます。

Dim MyDate As String = CType(MyText.Substring(MyText.Length - 8), DateTime).ToString("MM/dd/yyyy")

MyText = MyText.Substring(0, MyText.Length - 8) & MyDate

一方、日付が別の変数、たとえばDateTime変数にある場合は、次のように実行できます。

Dim MyDateFormatted As String = MyDate.ToString("MM/dd/yyyy")

これを行うには他の方法があります。ここで重要なのは、日付を取得し、DateTime.ToStringメソッド(String)メソッドを介して目的の形式に変換することです。ここで、括弧内の形式文字列は、使用する形式を示します。

編集済み

これは、最初にコードを試さなかった場合に得られるものです...文字列「10222012」が有効な形式として認識されない場合は、これを行う別の方法があります。

Dim MyText As String = dRecord.Rows(i).Item(iCount).ToString 
Dim MyDate As String = MyText.Substring(MyText.Length - 8)
MyDate  = MyDate.SubString(0, 2) & "/" & MyDate.Substring(2, 2) & "/" & _
          MyDate.Substring(4)
oSheet.Cells(x, iCount - 2) = MyText.Substring(0, _
                              dRecord.Rows(i).Item(iCount).Length - 8) & _
                              MyDate

それはもう少しブルートフォースで醜いですが、それはあなたを正しい方向に向かわせるはずです。同じ結果の使用Insert(別の文字列演算子)を取得できる場合もありますが、それは同じように醜い場合があります。

この変換を頻繁に行う必要がある場合は、ヘルパーメソッド、さらには拡張メソッドに変換することをお勧めします。

2回目の編集

空白のレコードを簡単に確認できます。

Dim MyText As String = dRecord.Rows(i).Item(iCount).ToString
If Not String.IsNullOrEmpty(MyText) Then
    ' convert the format here
End If
于 2012-10-11T02:53:08.603 に答える