2017-11-24 9 views
-1

「2017-11-16」や「2017-11-16 12:59:11.243」のような文字列形式の日付があります。私は日付に変換する必要があります。以下は日付の文字列を時間の有無に変換する方法

私のコードです:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); 
Date createdOn = formatter.parse(date); 

日があるとき、それは正常に動作します "2017年11月16日12:59:11.243"。しかし、 "2017-11-16"の日付でフォーマットすることはできません。

文字列の日付はURLから来ているため、時間がある場合も時間がない場合もあります。どのタイプの日付がURLから来ているのかにかかわらず、どのようにDateに変換することができますか?

実際には、日付に基づいてデータベースから行を見つけなければなりません。データベースでは、日付は2017-11-16 12:59:11.243のような形式で格納されています。しかし、URL 2017-11-16から来ている場合は、この日付に従って検索する必要があります。

+0

をPARSを変更することができます。 _Oneは文字列内の位置で日付を解析し、その位置からの時刻だけを解析することができますが、それはより複雑です。 –

+1

これはあなたが尋ねたものではありませんでした: 'ss.sss'あなたは間違った結果を出します。ミリ秒間に 'SSS'を大文字にした' ss.SSS'を使用してください。 –

+0

[Joda DateTime(String)のような日付時刻文字列をJava 8で変換する]の可能な複製(https://stackoverflow.com/questions/43208870/convert-date-time-string-like-joda-datetimestring-with-java- 8) –

答えて

3

あなたは、日付+時刻の形式とする場合、失敗解析日付形式を解析し、時間の存在に基づいて

if(dateOrDataTime.contains(":")){ 
    //Use parser with date-time. & fetch with equal 
}else{ 
    //Use parser for date only. & fetch using date(date_time) 
} 
+0

ありがとうございます。私は今これが好きでした。 – Mkaur

+0

@Mkaur、確認済みとマークしてください – anchreg

+0

簡単に、それをする前に他の提案を招待するには、数日後に受け入れられたとマークするのが一般的です。受け入れられた回答を持つ質問は、あまり注意を払わない傾向があります。 –

関連する問題