Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: 日付フォーマットの変更について



Permlink Replies: 2 - Last Post: Oct 2, 2016 11:19 PM Last Post By: 朋則 北山
朋則 北山

Posts: 22
Registered: 8/14/15
日付フォーマットの変更について
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 2, 2016 7:33 PM
C++Builder6で作成されたアプリケーションのC++Builder10.1への移行作業を
行っています。

C++Builder6では以下のソースコードで日付フォーマットの変更ができたのですが、

DateSeparator = '/';
ShortDateFormat = "yyyy/mm/dd";
TimeSeparator = ':';
LongDateFormat = "yyyy/mm/dd hh:nn:ss";

C++Builder10.1ではコンパイルエラーになります。

[bcc32 エラー] ComAppInit.cpp(44): E2451 未定義のシンボル DateSeparator
[bcc32 エラー] ComAppInit.cpp(45): E2451 未定義のシンボル ShortDateFormat
[bcc32 エラー] ComAppInit.cpp(46): E2451 未定義のシンボル TimeSeparator
[bcc32 エラー] ComAppInit.cpp(47): E2451 未定義のシンボル LongDateFormat

C++Builder10.1ではどのように実装すれば日付フォーマットの変更ができるので
しょうか?

Edited by: 朋則 北山 on Oct 2, 2016 7:34 PM
Hikaru FUKUSHI

Posts: 65
Registered: 11/11/02
Re: 日付フォーマットの変更について
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 2, 2016 11:02 PM   in response to: 朋則 北山 in response to: 朋則 北山
北山さん、こんにちは。福士と申します。

C++Builder6では以下のソースコードで日付フォーマットの変更ができたのですが、

DateSeparator = '/';
ShortDateFormat = "yyyy/mm/dd";
TimeSeparator = ':';
LongDateFormat = "yyyy/mm/dd hh:nn:ss";

C++Builder10.1ではコンパイルエラーになります。

[bcc32 エラー] ComAppInit.cpp(44): E2451 未定義のシンボル DateSeparator
[bcc32 エラー] ComAppInit.cpp(45): E2451 未定義のシンボル ShortDateFormat
[bcc32 エラー] ComAppInit.cpp(46): E2451 未定義のシンボル TimeSeparator
[bcc32 エラー] ComAppInit.cpp(47): E2451 未定義のシンボル LongDateFormat

これはDelphi/C++Builder XE3での変更点になります。

Delphi XE3 および C++Builder XE3 の新機能 - RAD Studio XE3
http://docwiki.embarcadero.com/RADStudio/XE3/ja/Delphi_XE3_%E3%81%8A%E3%82%88%E3%81%B3_C%2B%2BBuilder_XE3_%E3%81%AE%E6%96%B0%E6%A9%9F%E8%83%BD#XE3_.E5.90.91.E3.81.91.E3.81.AB.E8.A1.8C.E3.82.8F.E3.82.8C.E3.81.9F_RTL_.E3.81.AE.E5.A4.89.E6.9B.B4.E7.82.B9

グローバル変数が非推奨のため、代わりに FormatSettings を使用します。
System.SysUtils 内の 20 個のグローバル変数は、数年間にわたり非推奨と
されてきましたが、現在では製品から削除されています。

従来SysUtilsユニットのグローバル変数だったCurrencyStringやDateSeparator
などは、XE3以降ではTFormatSettings構造体のグローバル変数FormatSettingsの
メンバとして保持されているものを使用するようになっています。

FormatSettings.DateSeparator = '/'; 
FormatSettings.ShortDateFormat = "yyyy/mm/dd"; 
FormatSettings.TimeSeparator = ':'; 
FormatSettings.LongDateFormat = "yyyy/mm/dd hh:nn:ss"; 


こんな感じになります。

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
朋則 北山

Posts: 22
Registered: 8/14/15
Re: 日付フォーマットの変更について
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 2, 2016 11:19 PM   in response to: 朋則 北山 in response to: 朋則 北山
ご丁寧に対応して頂き、ありがとうございました。
無事コンパイルエラーが取れました。
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02