1

米国の短い日付に等しいと思う日付「3/27/11」を解析したいと思います。

DateFormat df1 = new SimpleDateFormat("MM/dd/yy");
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
Date date = (Date) df1.parseObject("03/27/11");
System.out.println("New date: " + df2.format(date));

上記のコードはいくつかのJavaチュートリアルで見つかりましたが、機能していないようです。私が得る方法については、

Exception in thread "main" java.lang.AssertionError: Default directory must be absolute/non-UNC

これが私が達成したいことです、

入力: 2011年3月27日(2011年3月
27日も有効な入力である必要があります)
出力:2011-03-27

前もって感謝します!

4

4 に答える 4

2

これを実行すると、

New date: 2011-03-27

あなたの問題はこれとは何の関係もないのではないかと思いますが、アプリケーションのデフォルトディレクトリはUNCパスです。つまり、エラーメッセージの内容とまったく同じです。

C:ドライブまたはネットワークドライブ文字を使用したパスからこのプログラムを実行してみてください。

于 2011-05-17T07:40:35.117 に答える
1
public class date {


    public static void main(String args[])
    {
        String s="03/27/2011";// or 3/27/2011

        SimpleDateFormat dateFormatter=s.length()==9?new SimpleDateFormat("M/dd/yyyy"):new SimpleDateFormat("MM/dd/yyyy");
        try {
            Calendar calendar=Calendar.getInstance();
            Date date=dateFormatter.parse(s);
            calendar.setTime(date);
            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
            String str=simpleDateFormat.format(calendar.getTime());
            System.out.println(str);
        } catch (ParseException e) {
              e.printStackTrace();
        }
    }

}

    enter code here
于 2011-05-17T07:46:35.100 に答える
1

このようにすることもできます

String DATE_FORMAT_NOW = "dd-MM-yyyy HH:mm:ss";

//Instance of the calender class in the utill package
Calendar cal = Calendar.getInstance(); 

//A class that was used to get the date time stamp
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW); 

あなたが言う時間を印刷するには

System.out.println(sdf.format(cal.getTime()) );

乾杯

于 2011-05-17T07:50:22.980 に答える
0

私はAssertionError絶対的な道についても不満を持っていて、総当たり攻撃による回避策を見つけました。この問題の答えを探している人が、私が修正したほど多くの時間を無駄にする必要がないことを期待して、ここに結果を投稿すると思いました。

問題は、OracleバージョンのJavaVMのバグのようです。java.util.Calendar非静的オブジェクトで初めてオブジェクトを(直接または間接的に)作成する場合、このエラーが発生します。これを防ぐにmain()は、静的なメソッドでCalendarオブジェクトをインスタンス化するだけです。その後の非静的インスタンス化は、少なくとも私の場合は、その後は問題なく機能します。main()を次のような単純なもので開始します

System.out.println(java.util.Calendar.getInstance().getTime());

トリックを行います。

それが誰かを助けることを願っています。

于 2013-06-28T13:46:59.470 に答える