質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

4回答

4740閲覧

new Date()を禁止する理由

redhat98

総合スコア236

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

3クリップ

投稿2015/11/27 08:44

業務システムを見てみると、new Date()を禁止している場合があります。

singletonを作ってDateを取得したり、UtilsからDateを取得したり出来ます。
でも、間違えてnew Date()って書いたりしませんか?

JUnitでテストを使う場合は、new Date()した時の日付を差し替えることが出来ます。
国内でしか使わないシステムで、new Date()を禁止するメリットってあるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

一般的な話ではないので想像になりますが、例えば以下の理由が考えられます。

  • 「今日」を指すオブジェクトは本来immutbleでよく、1オブジェクトだけ生成すれば良い。同じものを指すのに複数オブジェクトを生成するのはメモリの無駄遣いだ。
  • 業務処理上、「今日(今現在)」は必ずしもコンピュータが管理している現在時刻とは一致しない。DBの情報などから生成する必要がある。

投稿2015/12/14 15:40

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

テストなどで未来日時点での動きを検証するといった時や、過去の障害発生時の時刻で再現するなど、何かと便利だからではないでしょうか? クリティカルな業務システムの場合には合理的なコーディングルールかと思います。

投稿2015/11/27 10:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

>singletonを作ってDateを取得したり、UtilsからDateを取得したり出来ます。
でも、間違えてnew Date()って書いたりしませんか?
呼び出し元でオブジェクトが指す日時を変えることが出来てしまうからだとおもいます。
誤って別のnew Dateを使われたりしないようにです。

投稿2015/12/02 03:08

matsumoto

総合スコア590

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

そもそもJava自体が非推奨APIからです。
非推奨の理由は、
https://docs.oracle.com/javase/jp/8/api/java/util/Date.html

ざっくり目を通してみましたが、
国際化対応、うる秒なので問題があるらしいですね。

投稿2015/12/02 03:04

liguofeng29

総合スコア801

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/12/14 15:41

new Date() 自体は非推奨ではありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問