• 締切済み

javaの日付型

javaでも日付型はあるのですか? textfieldで入力した数字が日付として 正しいものなのかを判定したいのですが。 よかったら教えてください。 よろしくお願いします。

  • yoro
  • お礼率33% (5/15)
  • Java
  • 回答数2
  • ありがとう数2

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.2

 入力された文字列をSimpleDateFormatクラスのparseを使って解析し、 Date型に変換できるかどうかで判定することができます。 以下の例は、テキストフィールドに入力された文字列が、 設定されている日時形式に合致するかどうかを判定してその結果を表示するプログラムです。 import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; class datechecker implements ActionListener { Label FM, MG; Button BN; TextField TF; static String Format = "yyyy/MM/dd kk:mm"; public datechecker() { FM = new Label("Format : " + Format); BN = new Button("Check"); TF = new TextField(); MG = new Label("Start"); BN.addActionListener(this); }; public void actionPerformed(ActionEvent e) { Date DA = null; SimpleDateFormat DF = new SimpleDateFormat(Format); try { DA = DF.parse(TF.getText()); MG.setText("OK : " + (DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG)).format(DA)); } catch (Exception ex) { MG.setText("NG"); }; }; } public class datecheck { public static void main(String args[]) { Frame MF = new Frame("Date Format Check"); MF.setSize(320, 120); MF.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); }; }); MF.setLayout(new GridLayout(4, 1)); datechecker DC = new datechecker(); MF.add(DC.FM); MF.add(DC.TF); MF.add(DC.BN); MF.add(DC.MG); MF.setVisible(true); }; }

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> javaでも日付型はあるのですか? > textfieldで入力した数字が日付として > 正しいものなのかを判定したいのですが。 DateFormat クラスの parse メソッドが期待するものになるでしょう。 文字列として渡した日付の表記を解釈して、正しければ、日付を表す Date クラスの インスタンスを返します。日付とみなせなければ null を返します。 詳細は、Sun のサイトで API のマニュアルを参照できる(→参考URL)ので、 そこをご覧になって下さい。

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html
yoro
質問者

お礼

ありがとうございます。 参考にさせてもらいます。

関連するQ&A

  • java アプレット

    学校の授業でアプレットを学んでいます。 しかし・・・ 下のプログラムで、計算した結果をlabel3にはりつけたいのですが、計算結果がでてくれません・・・ボタンを押しても何もでてきません。 コマンドプロンプトで、エラーはでてきません。 お手数ですが、誰かどこがいけないのか教えて下さい。 import java.awt.*; import java.awt.event.*; public class B extends java.applet.Applet implements ActionListener { Label label3 = new Label(); Button button2 = new Button(); TextField textfield1= new TextField(10); TextField textfield2= new TextField(10); public void init() { button2.setLabel("入力したらクリック!"); button2.setBounds(new Rectangle(50, 465, 120, 20)); this.setLayout(null); label3.setBackground(Color.blue); label3.setBounds(new Rectangle(325, 80, 200, 35)); textfield1.setBounds(100, 425, 100, 25); textfield2.setBounds(150, 350, 100, 25); this.add(textfield2, null); this.add(label3, null); this.add(textfield1, null); this.add(button2, null);} public void actionPerformed(ActionEvent event) {if(event.getSource() == button2) {int diff = Integer.parseInt(textfield1.getText()) - Integer.parseInt(textfield2.getText()); String otsuri; otsuri ="お釣りは"+ diff +"円です。"; label3.setText(otsuri);} }} よろしくお願いします。

    • ベストアンサー
    • Java
  • Java Appletでの配列継承

    A.javaのTextFieldで入力した文字列を配列(String i[])に入れていき、B.javaでその配列を読み込みたいのですがうまくいきません。 nullとしか表示されないのです。 どのようにしたらいいのでしょうか。 ご存知の方いらっしゃいましたら教えてください。 説明不十分でしたらその都度聞いてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • java 素数判定

    入力した数字が整数か否かを判定するjavaプログラムを作っています。 以下の通りコンパイルして実行しました。これだと実行したときに どんな数字を数字を入力しても「31は素数です。 」となります。 入力した数字を判定させるにはどのようにしたらいいのでしょうか? class Sosuu { public static void main (String[] args) { int n = 31; boolean isPrime = true; for (int i = 2; i <= n - 1; i++) if (n % i == 0) { isPrime = false; break; } if (isPrime) System.out.println(n + " は素数です。"); else System.out.println(n + " は素数ではありません。"); } }

    • ベストアンサー
    • Java
  • java applet

    import java. applet.*; import java. awt. Button; import java. awt. Label; import java. awt. TextField; import java. awt. event.*; public class 1120 extends Applet implements ActionListener { private TextField box1 = new TextField(5); private TextField box2 = new TextField(5); private TextField box3 = new TextField(5); private Label moji1 = new Label(" と "); private Label moji2 = new Label(" の和は "); private Label moji3 = new Label(" である。 "); private Button ok = new Button("OK"); public void init() { resize( 320 , 240); add( box1 ); add( moji1 ); add( box2 ); add( moji2 ); add( box3 ); add( moji3 ); add( ok ); ok.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { int i=0 ,j =0 , k; String t1 = box1.getText(); String t2 = box2.getText(); i = Integer.parseInt( t1 ); j = Integer.parseInt( t2 ); k = i + j; String s = Integer.toString( k ); box3. setText( s ); } } //上記のプログラムを書いたのですが、なぜかエラーが出てしまいます。勿論、自分でも見直しましたが、その理由がわかりませんでした。知識のある方、ご回答の方お願いします。

  • Javaで正規表現を利用して日付を判定したいです

    今、次のようなプログラムがあります ~~~~~ package testprogramm; import java.io.*; public class Sample01 { public static void main(String[] args) { Sample01 nyuryoku = new Sample01(); nyuryoku.keyboardIn(); } String keyboardIn(){ String str=""; try{ BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); System.out.println("生年月日を入力してください(西暦年/月/日):"); str = br.readLine(); System.out.println(str + " が入力されました。"); }catch(IOException e){ System.out.println("例外" + e + "が発生しました"); } finally{ return str; } } } ~~~~~ このプログラムの結果は「〇〇が入力されました」と、標準出力するだけの簡単なプログラムです。 現状、生年月日以外の、何でも入力できる状態になっております。 その状態に制約をかけたいのです。 例えば"1980/11/15"のように「yyyy/mm/dd」の形式であれば、 ------------- 正常に登録が完了しました。 ------------- と、表示され。 "23333"のように、「yyyy/mm/dd」の日付の形式で記載されていなかった場合、 ――――――――――――――――――― 正しい日付を入力してください: ――――――――――――――――――― と、再入力を促すような。 そういったユーザーが入力した値を判定するようなプログラムを書きたいのですが、どうしてもうまく書くことができません。 【Javaで正規表現】文字列をチェックするパターンの書き方とサンプル | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト https://www.sejuku.net/blog/13215 に、日付をtrueとfalseで判定するプログラムは見つかったのですが。 これをどう活かせれば、メッセージを出し分けしたり再入力を促せるのかという繋ぎ込みができず…お力添えいただけますと幸いです。 よろしくお願い致します<m(__)m> ※OKWAVEより補足:「Webシステム開発」についての質問です。

  • javaでの日付の大小比較について

    javaでの日付の大小比較について分からない事があります。 (1)例:2002/04/01と本日の日付(例:2002/06/03)の大小関係を調べるにはどうす ればよろしいのでしょうか? 何か分かる事がありましたら、ご教授お願い致します。

    • ベストアンサー
    • Java
  • ジャバスクリプトでカレンダーを表示させて日付を入力する

    仕事上、webソフト(ハイパータウン)で文書のフォーマットを作成しています。 フォーマット自体はソフトのツールである程度作れるのですが、ツールだけでは作れないタグの入力が必要で、でも私自身ジャバスクリプトはまったく分かりません・・・でも作らなければなりません。非常に苦しいです。 リストボックスで入力する方法もあると思いますが、できればカレンダーを表示させて、日付をクリックして入力する方法にしたいのです。  ジャバスクリプトを理解もしていないのに無謀であることは重々承知ですが、どなたか入力するタグを教えていただけませんか?  宜しくお願い致します。  

  • EXCELで 日付から日付を引いて年数を出すやり方について・・

    こんにちは。 こちらで以前も とてもためになる回答を頂いて また助けていただけたらと思い、質問させて頂きました。 タイトルのとおりなのですが 日付から日付を引いて年数を出したい所なのですが、 (社員の在籍年数を出したいのです) 入力されている日付が文字列になっているのか 引き算ができず困っています・・・。 文字として入力されている日付を 数字に変換 することはできるのでしょうか? 何かいい方法がありましたら  教えてください(><) お願い致します

  • 日付で判定する処理

    あまりよくわかっていないので恐縮ですが,掲示板のような処理で入力は日付と文章のみです. 入力の文字列の日付は,今日だと「2005/02/14」と入れ,文章は「こんにちは」としたとするとこの2つがテキストファイルに「,カンマ区切りで」書き込まれます.それをhtmlで表示させているようです. やりたい処理は1週間前の日付だったら文章の文字列を赤色で表示するということをしたいのです. 比較結果で赤文字列にする処理はわかったのですが判定の部分で悩んでおります. 判定する際,思いついたのが入力してある文字列がたとえば「2005/02/14」の形式なのでこの値と今日の日付とを比較して7日前だったら文章を赤文字にしたいのですが,普通はどのような比較をするのでしょうか? 私が考えたのは,ファイルに書き込まれている「2005/02/14」を読み込み「/」をなくして「20050214」にし数字形式にすることで,今日の日付も,「20050214」の形式として7日を引けば負の時は何もせず正の時は文章を赤文字で表示させればと考えたのですが,ファイルから読み込んだ「2005/02/14」から「/」を無くす方法や今日の日付を取得した結果は文字列の形式みたいなので計算にはつかえないようです. 実はもっと簡単な方法があるのではないかと悩んでいたりしています.どなたかご教授お願いいたします.

    • ベストアンサー
    • Perl
  • Excel で数字が日付に変更されてしまう

    Excel 2003を使っている初心者です。 日付と数字を入力するということをやっていますが、ある列に日付を入力し、その後入力したとき自動的にただの数字が一列おきに日付に変わってしまいます。  具体的には、D列に日付を入力(6/13のように)しF列にもうひとつ日付入力、その後はG,H,I,J...列に数字を入力したいのですが、なぜかH,J列には55のようにただの数字をいれても2月24日などと勝手に変換されてしまいます。 6月13日 6月27日 130 55 135 55のように入力したいのに 6月13日 6月27日 130 2月24日 135 2月24日となってしまいます。 特に日付に関する設定をした記憶がないのですが、どのようにすると日付に変換されないようにできますでしょうか? (分かりにくい説明で申し訳ありません)