- PR -

VB2005 UTC時刻(シリアル)をDateTimeに変換する手段

1
投稿者投稿内容
t-kingyo
会議室デビュー日: 2006/05/30
投稿数: 8
投稿日時: 2007-04-24 19:39
サーバが時刻をUTCファーマット、シリアル形式を戻り値として返してきます。この値をDateTimeに変換したいのですが、キャスティングで失敗します。

なにかいい手段がありましたら、教えて下さい。

イメージとしては
入力→1177042920 (Long或いはString)
出力→2007-04-20 13:22:00
になります。

宜しくお願いします。
lalupin4
大ベテラン
会議室デビュー日: 2004/07/26
投稿数: 163
投稿日時: 2007-04-24 19:53
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37626&forum=7
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-04-24 20:13
引用:

t-kingyoさんの書き込み (2007-04-24 19:39) より:

イメージとしては
入力→1177042920 (Long或いはString)
出力→2007-04-20 13:22:00
になります。


とりあえず、1177042920 が 2007-04-20 13:22:00 になるわけです
よね?
DateTime コンストラクタ (Int64, DateTimeKind) あたりが使えるの
かな?と思いましたが、よく見ると 1177042920 という値は Utc にして
は小さすぎませんか。
逆に 2007-04-20 13:22:00 をシリアル形式?にしたら
1177042920 になったということだと思うのですが、どういった方法で変
換しているのでしょうか。教えてください。
それがわからなければ、答えようがないように思います。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
lalupin4
大ベテラン
会議室デビュー日: 2004/07/26
投稿数: 163
投稿日時: 2007-04-24 20:35
 ごめんなさい。超間違ってました。DateTime.Perse()じゃないのね:

コード:

Dim dt As DateTime
dt = New DateTime(1970, 1, 1)
dt = dt.AddSeconds(1177042920)


あとは時差に留意のこと。

// なんやかんや修正

[ メッセージ編集済み 編集者: lalupin4 編集日時 2007-04-25 00:20 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2007-04-24 20:40
UNIXのタイムスタンプあたりでしょうか?

引用:

イメージとしては
入力→1177042920 (Long或いはString)
出力→2007-04-20 13:22:00
になります。



値を見ると1970/01/01 00:00:00を基準にした日時のようですね。
上記の日付のDateTimeを作成して、AddSecondsメソッドでいけます。

#1/1/1970#.AddSeconds(1177042920)

時差の9時間はよしなにどうぞ。
t-kingyo
会議室デビュー日: 2006/05/30
投稿数: 8
投稿日時: 2007-04-24 20:41
lalupin4さん、ぽぴ王子さん

ありがとうございました。
lalupin4さん方式でうまくいったので、時差の分を足して解決とします。

助かりました!

1

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