C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: エラーの原因と修正方法を教えてください


(過去ログ 169 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■97495 / inTopicNo.1)  エラーの原因と修正方法を教えてください
  
□投稿者/ でし (1回)-(2021/05/27(Thu) 14:58:50)

分類:[.NET 全般] 

同じプログラムを別のパソコンで動かすと以下のエラーが発生します。

エラーメッセー時から
日付の設定方法がPCによって違うのだと思いますが、
原因と、修正方法がわかりません。
プログラム内では 'yyyy/MM/dd' で処理していて
'm/d/yy' のフォーマットは使用していません。


--------------------------------------------------------------------------------
アプリケーションのコンポーネントで、ハンドルされていない例外が発生しまし
。[続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しよう
とします。[終了]をクリックすると、アプリケーションは直ちに終了します。

年、月、日の順序を 'm/d/yy' から決定できませんでした。
--------------------------------------------------------------------------------

引用返信 編集キー/
■97496 / inTopicNo.2)  Re[1]: エラーの原因と修正方法を教えてください
□投稿者/ shu (1255回)-(2021/05/27(Thu) 15:47:07)
No97495 (でし さん) に返信

そのパソコンでWinodwsの日付に関する設定が
変更されている為かと思います。




引用返信 編集キー/
■97497 / inTopicNo.3)  Re[1]: エラーの原因と修正方法を教えてください
□投稿者/ 魔界の仮面弁士 (3107回)-(2021/05/27(Thu) 16:06:02)
No97495 (でし さん) に返信
> プログラム内では 'yyyy/MM/dd' で処理していて
"yyyy\/MM\/dd" ではなく、"yyyy/MM/dd" なのですね?

> 'm/d/yy' のフォーマットは使用していません。
日付を文字列型にする際は良いとして、その逆に
文字列を日付型に変換するために、どのような方法を使っていますか?

「DateTime.Parse」や「VB の CDate」などは OS の地域設定に依存してしまうため、
書式を明示できる DateTime.TryParseExact メソッドを使うのが望ましいです。

また、TryParseExact を指定する際には、固定的なカルチャを明示します。
(たとえば、CurrentCulture ではなく InvariantCulture を渡すようにする)


あるいは自前で分解して
 new DateTime(年, 月, 日)
のように渡すという手もあります。
引用返信 編集キー/
■97499 / inTopicNo.4)  Re[2]: エラーの原因と修正方法を教えてください
□投稿者/ 魔界の仮面弁士 (3108回)-(2021/05/27(Thu) 17:46:14)
No97497 (魔界の仮面弁士) に追記
> 「DateTime.Parse」や「VB の CDate」などは OS の地域設定に依存してしまうため、

OS の地域設定は、ここにあります。

(1) [ファイル名を指定して実行] で "intl.cpl" を起動
(2) [地域] ダイアログの [形式] タブの [追加の設定]ボタン
(3) [形式のカスタマイズ] ダイアログの [日付] タブ

※intl.cpl を直接指定せず、コントロールパネルから辿っても良いです。


日付区切り記号が "/" ではないパターンや、
和暦モードの場合にも動作するか検証してみてください。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -