- PR -

String.Formatで":"の表示

1
投稿者投稿内容
gen
会議室デビュー日: 2006/07/19
投稿数: 17
投稿日時: 2006-08-03 18:23
こんにちは、
VB2005のString.Formatで
"1212" -> "12:12"
"2311" -> "23:11"
"123" -> "01:23"
上の変換したいのですがうまく行きません。
----------------------------------------
dim a as String = "1212"
dim s as String = String.Format("{0:00:00}",a)
sの結果:"1212"
-----------------------------------------
dim a as String = "1212"
dim s as String = String.Format("{0:00::00}",a)
sの結果:"1212"
-----------------------------------------
VB6.0の Format(a,"&&:&&") と同じ機能です。
どなたかアドバイスよろしくお願いいたします。




[ メッセージ編集済み 編集者: gen 編集日時 2006-08-03 18:35 ]
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-08-03 18:34
引用:

genさんの書き込み (2006-08-03 18:23) より:

dim s as String = String.Format("{0:00:00}",a)


これが出来るのは a が DateTime な時です。
SubString で切るか、DateTime.ParseExact なんかで日付に変換してあげてください
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-03 18:41
引用:

かるあさんの書き込み (2006-08-03 18:34) より:

これが出来るのは a が DateTime な時です。


根本的な原因はソレではなくて、

引用:

dim a as String = "1212"


これではないでしょうか。

コード:

    Dim i As Integer = 1212
    Dim s As String  = String.Format("{0:00:00}", i)

    MessageBox.Show(s)


であれば、できるでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
gen
会議室デビュー日: 2006/07/19
投稿数: 17
投稿日時: 2006-08-03 18:50
かるあさん、アドバイスありがとうございました。
--------------------------------------------
Dim a As String = "1212"
Dim s As String = String.Format("{0:00:00}", DateTime.ParseExact(a,"HH:mm",Nothing)
--------------------------------------------
で"文字列は有効な DateTime ではありませんでした。"のエラーになりました。
aが"200612121300"などのDateTime形式ではないとDateTime.ParseExactはだめですかね?


じゃんぬねっとさん、ありがとうございました。

これでできました。
--------------------------------------------
Dim a As String = "1212"
Dim s As String = String.Format("{0:00:00}", CInt(a))
--------------------------------------------
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-03 19:25
引用:

genさんの書き込み (2006-08-03 18:50) より:

Dim s As String = String.Format("{0:00:00}", DateTime.ParseExact(a,"HH:mm",Nothing)
で"文字列は有効な DateTime ではありませんでした。"のエラーになりました。
aが"200612121300"などのDateTime形式ではないとDateTime.ParseExactはだめですかね?


書式が一致していませんよね?
"1212" と "HH:mm"、コロンは不要です。

サンプル コードしか拝見していませんので、何とも言えませんが、
素直に、コンストラクタのオーバーロードのひとつを使った方が良いかもしれません。

  New System.DateTime(Integer, Integer, Integer)

引用:

Dim a As String = "1212"
Dim s As String = String.Format("{0:00:00}", CInt(a))


本題と直接は関係ないところですが、
.NET Framework 2.0 からは、どうしても TryParse メソッドを薦めたくなってしまいます。

  文字型を数値型へ変換する方法

CInt についても参考になれば幸いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-08-03 20:55
わっフォローありがとうございます。
引用:

じゃんぬねっとさんの書き込み (2006-08-03 18:41) より:
根本的な原因はソレではなくて、
これではないでしょうか。

コード:

    Dim i As Integer = 1212
    Dim s As String  = String.Format("{0:00:00}", i)




そのとおりですね・・・
1

スキルアップ/キャリアアップ(JOB@IT)