こんにちは!
フリーランスプログラマーの阿部拓哉です!
先日、自分の開発作業で手こずった内容の備忘録みたいな内容になりますが…
和暦を含む文字列(例えば「令和02年04月01日」)を、VB.NETのCType関数を用いて、
西暦の日付(2020年04月01日)に変換するというプログラムを作成して、検証しました。
自分のローカル環境では、インプット値の元号が「昭和」でも「平成」でも「令和」でも、正しい結果を出力しました。
が、ステージング環境に全く同じプログラムを配置して検証すると、
「昭和」と「平成」だと正しく変換できるのですが、「令和」を含む日付を変換しようとするとエラーになってしまいました。
(CType関数の代わりに、TryParseExact関数を使っても、同じ結果でした)
いろいろ調べると、どうやらWindows環境の差異によってCType関数の振る舞いが変わる可能性があるようです(まだ断定はできていません)。
同じソースコードでも環境によって動作結果が異なる、という事象に出くわし、もっと勉強が必要だなあと感じました。
以上です!
最後までお読みいただきありがとうございました!