2016-04-22 9 views
-4

文字列オブジェクトに日付があります。 Dateオブジェクトに変換したい。文字列オブジェクトを取り、dd-MM-yyyy形式のDateオブジェクトを返す関数を作成します。

Date getDateFmString(String dateString) 
{ 

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
Date convertedCurrentDate = sdf.parse(dateString); 
return convertedCurrentDate ; 
} 

上記の関数は、次の出力を返します。

Fri Apr 22 00:00:00 IST 2016 
  • が、私はこのフォーマットで出力したい '2016年3月1日には、' のみ
  • 関数は、文字列を取る必要があります。
  • 関数はDateオブジェクトを返す必要があります。
+0

正しいフォーマットではありませんか? – 4castle

+0

これは文字列オブジェクトですDateオブジェクトに入れたい –

+0

どのような目的ですか?文字列の形式を検証することですか? – 4castle

答えて

2

私はウェブ上で多くの研究を行っていますが、私はあるエキスパートから解決策を得ました。

Date getDateFrmString(String dDate) 
    {  

    java.sql.Date dDate = new java.sql.Date(new SimpleDateFormat("yyyy-MM-dd").parse(sDate).getTime()); 
    return dDate; 
    } 

これは私が欲しいものです。

0

変更

SimpleDateFormat sdf = new SimpleDateFormat("dd-mm-yyyy"); 

希望に

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 

から日付の形式は、このあなたが間違った形式で解析している

+0

月を表すには、大文字の「MM」を使用する必要があります。それ以外の場合、小さな「mm」は分を表します。 – 4castle

+0

まだ私はこのようになっていますJanuary 22 00:04:00 IST 2016それはMMだけでなければなりません –

0

を試みる作品

String dateString="01-01-2016"; 
SimpleDateFormat sdfP = new SimpleDateFormat("dd-MM-yyyy"); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
Date convertedCurrentDate = sdfP .parse(dateString); 
String date=sdf.format(convertedCurrentDate); 
System.out.println(date); 

出力:

2016-01-01 

DEMO1

そして、あなたはその後dd-MM-yyyyにフォーマット別々SimpleDateFormatオブジェクトを定義する必要はありませんしたい場合。

String dateString="01-01-2016"; 
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
Date convertedCurrentDate = sdf.parse(dateString); 
String date=sdf.format(convertedCurrentDate); 
System.out.println(date); 

OUTPUT:

01-01-2016 

DEMO2

最初の文字列は、その後のフォーマットを持っている日付の同じ形式を使用してDateオブジェクトに文字列を解析するために、使用している文字列の日付をフォーマットしますそれは上記のコードに見られるような希望のフォーマットを使用します。

+0

出力は 'dd-MM-yyyy'のように書かれているとの質問があります – 4castle

+0

Dateオブジェクトにこのフォーマットが必要です文字列オブジェクト –

+0

@shimbushambu日付形式チェックがありませんhttp://stackoverflow.com/questions/19207477/is-it-possible-to-get-java-util-date-object-with-specific-format – silentprogrammer

0

このlinkは、日付オブジェクトへの変換文字列であなたを助けるかもしれない

public Class DateFormatDemo{ 

public static void main (String args[]) { 

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy); 
String dateInString = "01/01/2015"; 

try{ 

Date date = formatter.parse(dateInString); 
System.out.println(date); 
System.out.println(formatter.format(date)); 

}catch(ParseException e){ 
e.printStackTrace(); 
} 
} 
} 

この例を参照してください

0

Dateオブジェクトは、形式を持っていません。 Stringのみです。Dateオブジェクトは、どの形式でも出力されます。と書式は同じです。 .format()に電話をかけたときの内容は、DateFormatオブジェクトの形式によって異なります。 DateオブジェクトでtoString()メソッドを呼び出すと、DateFormat"dow mon dd hh:mm:ss zzz yyyy"となります。

0

のは、それがステップバイステップでやってみましょう:

  1. あなたはDD-MM-yyyy形式で文字列として日付を持っています。
  2. 日付に変換します。 (これはSimpleDateFormatを使用しています)
  3. これで、日付を印刷しています。ここでの質問は、変換された日付オブジェクトまたは入力文字列を印刷していますか? dateオブジェクトの場合はtoStringメソッドがdateクラスで呼び出されます。

java.util.Dateクラスにコメントあたりのようです:

dow mon dd hh:mm:ss zzz yyyy 
similar to 
Fri Apr 22 00:00:00 IST 2016 

だから、あなたは第二のアプローチでの出力で得るものと一致しています。しかし、そのコードはどのように実行されているかは不思議です。

String inputStr = "11-11-2012"; 
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
Date inputDate = dateFormat.parse(input); 

変数 '入力' が定義されていません。

  1. 日付を印刷している間は、要件ごとにてSimpleDateFormatを使用して文字列に戻し、それを変換します

    は可能な解決策は何をしています。

    Date d =new Date(); 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    String dStr = sdf.format(dateString); 
    System.out.printn(dStr); 
    
  2. java.util.Dateクラスを拡張してtoStringをオーバーライドしましたが、それは悪い考えです。
+0

私は欲しい文字列を受け取り、日付をdd-MM-yyyy形式で返す関数を記述する。 –

+0

@ shimbushambuあなたのコメントは理にかなっていません。日付はオブジェクト、文字列は書式設定を適用できる場所です。そのため、日付をStringに変換して表示する必要があります。そうでなければ、Dateクラスは既定値を使用します。 –

関連する問題