トップ回答者
ftpで海外サーバー上のファイル日時取得

質問
-
VB2005にてFTPClientを製作中ですが、わからないことがあるので教えてください。
コード ブロックDim Request As System.Net.FtpWebRequest = System.Net.WebRequest.Create("ftp://。。。。。。。。/test.jpg")
request.Credentials = New System.Net.NetworkCredential("username", "password")
request.Method = System.Net.WebRequestMethods.Ftp.GetDateTimestampDim Response As System.Net.FtpWebResponse = Request.GetResponse
MsgBox(Response.LastModified)
このようなコードを作って試しているところです。
自分のホームページで試してうまくいくことを確認していますが、
海外のサーバーに対して行っても、日本時間が帰ってくるのでしょうか?
自分で試すことができないのでわからない状態です。
よろしくお願いします。
回答
-
FTPWebRequestはMDTMコマンドでファイルの最終更新時刻を取得します。
MDTMコマンドはRFC3659で定義されています。
RFC3659 2.3によれば、時刻はすべてUTCとなっており、
FTPWebRequestは内部でUTC表記の時刻をLocalTimeに変換しています。
ですので、海外のサーバーであろうとなかろうと、
RFC3659に準拠したFTPサーバーであれば、
実行したPCのシステムローカルな時刻が取得されます。
ただ、RFC3659はFTPのRFCとしてはかなり新しいもので、
MDTMコマンドにしても実装が先行し、仕様は後付けです。
ですので、準拠していない実装がたくさんありますし、
設定が間違っているものなどもたくさんあります。
時刻がどのくらいずれているのか、
サーバー毎に設定できるようにしないと実用上は問題ありだと思います。
すべての返信
-
FTPWebRequestはMDTMコマンドでファイルの最終更新時刻を取得します。
MDTMコマンドはRFC3659で定義されています。
RFC3659 2.3によれば、時刻はすべてUTCとなっており、
FTPWebRequestは内部でUTC表記の時刻をLocalTimeに変換しています。
ですので、海外のサーバーであろうとなかろうと、
RFC3659に準拠したFTPサーバーであれば、
実行したPCのシステムローカルな時刻が取得されます。
ただ、RFC3659はFTPのRFCとしてはかなり新しいもので、
MDTMコマンドにしても実装が先行し、仕様は後付けです。
ですので、準拠していない実装がたくさんありますし、
設定が間違っているものなどもたくさんあります。
時刻がどのくらいずれているのか、
サーバー毎に設定できるようにしないと実用上は問題ありだと思います。