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

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

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

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

Q&A

解決済

4回答

651閲覧

JavaのDate型クラスについて

Biginner_Java

総合スコア7

Java

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

0グッド

0クリップ

投稿2019/10/19 07:41

ある課題に取り組んでいるのですが、特定の日付の情報を持つDateクラスインスタンスを生成しなくてはならなくて、やり方がわかりません。

例えば2019年1月1日0時00分00ミリ秒の情報を持つDateクラスは生成できるのでしょうか?

Simpleformatや、Calenderクラスを利用すれば、おそらくできるのでしょうが、課題の条件がDateクラスとなっています。

始めたばかりの初心者なのですが、どなたかお力添えお願いいたします。

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

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

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

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

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

dodox86

2019/10/19 08:06

確かに。最初に自分自身で試すことをお勧めするべきでした。(少し反省)>cateyeさん
cateye

2019/10/19 08:21 編集

こっちでも出ました^^; 注意:~/NetBeansProjects/javatest1/src/javatest1/Javatest1.javaは推奨されないAPIを使用またはオーバーライドしています。 注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。 c
guest

回答4

0

ベストアンサー

Dateで直接日時を指定する方法は推奨されていないので、Calenderインスタンスを作り、getTimeメソッドでDateクラスに変換します。

ミリ秒が未設定だったので、修正しました。

Java

1 public static void main(String[] args) { 2 Calendar cal = Calendar.getInstance(); 3 cal.set(2019, Calendar.JANUARY, 1, 0 ,0, 0); 4 cal.set(Calendar.MILLISECOND, 0); 5 6 Date jan1st2019 = cal.getTime(); 7 8 System.out.println(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS").format(jan1st2019)); 9 }

2019/01/01 00:00:00.000

投稿2019/10/19 08:06

編集2019/10/19 08:21
naomi3

総合スコア1105

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

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

0

例えば2019年1月1日0時00分00ミリ秒の情報を持つDateクラスは生成できるのでしょうか?

Dateクラスも一応使えますが、非推奨です。コンパイル時にも警告が出ます。尚、「ミリ秒」はセットできません。

Date (Java Platform SE 8)

サンプル例を示します。

Java

1import java.util.Date; 2 3public class t3 { 4 5 public static void main(String[] args) { 6 7 int year = 2019 - 1900; 8 int month = 10 - 1; 9 int mdate = 19; 10 int hrs = 12; 11 int min = 34; 12 int sec = 56; 13 Date dt = new Date(year, month, mdate, hrs, min, sec); 14 System.out.println(dt.toString()); 15 } 16}

Windows上での実行結果です。

CMD

1C:>java -version 2java version "1.8.0_162" 3Java(TM) SE Runtime Environment (build 1.8.0_162-b12) 4Java HotSpot(TM) Client VM (build 25.162-b12, mixed mode, sharing) 5 6C>javac t3.java 7注意:t3.javaは非推奨のAPIを使用またはオーバーライドしています。 8注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。 9 10C>java t3 11Sat Oct 19 12:34:56 JST 2019 12

投稿2019/10/19 08:03

dodox86

総合スコア9183

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

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

dodox86

2019/10/19 09:21

回答は課題の条件がDateクラス、とのことでしたので、「あくまでDateクラスを使う」と言う方針でしたものです。そんな縛りが無いのであれば、naomi3さんの回答のように扱うべきだと思います。そうでないと、今では使えない技術の習得に時間をかけることになります。Javaアプレットを課題とするものも未だに散見されますので、質問者さんの教科書で扱っているJavaのバージョンが極端に古いことも考えられます。可能であれば課題を出した方に確認した方が良いかもしれません。
guest

0

皆さん有難うございます!
何とか出来ました。
2016年1月1日0時0分0秒00ミリ秒のDateクラスをインスタンス化して、1970年1月1日 00:00:00 GMTからの経過時間を出力する(※JSTへの変換処理、ミリ秒指定する処理が必要)というのが課題でした。皆さんの助言をもとに試行錯誤した結果、なんとかクリアできました。

SimpleDateFormatを利用しても達成できるのか疑問に思いました。

import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

public class Main {
public static void main(String[] args){

TimeZone jst = TimeZone.getTimeZone("Asia/Tokyo");

Calendar cal = Calendar.getInstance();
cal.setTimeZone(jst);
cal.set(2016, 0, 1, 0 ,0, 0);
cal.set(Calendar.MILLISECOND, 0);

Date d = cal.getTime(); System.out.print(d.getTime());

投稿2019/10/19 11:47

Biginner_Java

総合スコア7

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

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

dodox86

2019/10/19 17:26

解決したら他に回答いただいた方々のものを含め、一番ご自分のご要望にあったものをベストアンサーとし、質問を閉じてください。(あと、コードはマークダウンを利用して、```~```でくくって見易くしましょう)
guest

0

今からやるならDate-Time API使えるようになってたほうがいい。
単純に指定時間を表現したいならこっちの方が楽。

java

1LocalDateTime date = LocalDateTime.of(2019, 1, 1, 0, 0);

投稿2019/10/19 09:31

swordone

総合スコア20651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問