2

DB から長い値として日付値を取得しています。これを文字列に変換して解析機能を使用しています。以下は私のコードです

 Date date1 = new SimpleDateFormat("MM/dd/yyyy").parse(strDate1);

ただし、このコードの実行中にアプリがクラッシュします。

strDate1="12/30/2012".

しかし、私はこの値を「12302012235」(pzudo 値) としています。

これどうやってするの?

編集:

日付値を INTEGER として DB に保存しています。DB からこの値を取得し、文字列に変換しています。これは実際の strDate1 値です

strDate1="1346524199000"
4

7 に答える 7

5

次のコード セグメントを試してください。

        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(Long.parseLong(val));         
        Date d = (Date) c.getTime();        
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");       
        String time = format.format(d);//this variable time contains the time in the format of "day/month/year".    
于 2013-11-20T12:33:34.720 に答える
2

これを試して、

SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
    Date dateD=new Date();
    dateD.setTime(LongTime);
    date=dateFormat.format(dateD);
于 2012-08-01T06:36:06.273 に答える
2

Java 8、指定された日付形式パターンによって、ミリ秒の長さを文字列として日付に変換します。ミリ秒が長く、指定されたタイムゾーンとパターンで日付文字列に変換したい場合は、それを使用できます:-

dateInMsは DateTime の long 値です。

DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
                    .format(Instant.ofEpochMilli(dateInMs).atZone(ZoneId.of("Europe/London")))
于 2016-08-26T10:39:42.743 に答える
1

次のコードを試すことができます:

private Date getGMTDate(long date) {
    SimpleDateFormat dateFormatGmt = new SimpleDateFormat(
            "yyyy-MMM-dd HH:mm:ss");
    dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));
    SimpleDateFormat dateFormatLocal = new SimpleDateFormat(
            "yyyy-MMM-dd HH:mm:ss");

    Date temp = new Date(date);

    try {
        return dateFormatLocal.parse(dateFormatGmt.format(temp));
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return temp;
}  

これがお役に立てば幸いです。

于 2012-08-01T06:13:19.327 に答える
0

私は答えを得ました。実際には、値を比較するためだけに文字列を日付に変換したかったのです。これを行うためにcompareTo関数を直接使用している限り値を取得しているので、長い文字列から日付への変換と文字列から日付への変換を回避しました.すべてのサポートに感謝します。

于 2012-08-01T08:34:23.210 に答える
0

これを試して

Date date1 = new SimpleDateFormat("MMddyyyySSS").parse(strDate1);

12302012235 で機能することを願っていますが、235 はミリ秒であると想定しています。

于 2012-08-01T06:04:31.200 に答える