相关疑难解决方法(0)

java.text.ParseException:无法解析的日期:java.text.DateFormat.parse(DateFormat.java:579)

我有问题SimpleDateFormat

SimpleDateFormat dtfmt=new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.getDefault());
Date dt=dtfmt.parse(deptdt);
Run Code Online (Sandbox Code Playgroud)

在 Android 模拟器中工作正常,但在手机中出现此错误:

W/System.err: java.text.ParseException: Unparseable date: "24 Oct 2016 7:31 pm" (at offset 3) W/System.err: at java.text.DateFormat.parse(DateFormat.java:579)

有什么解决办法吗?

java android date datetime-parsing unparseable

2
推荐指数
1
解决办法
1211
查看次数

设置日期为30/12或31/12时的Java日历错误

我使用class Calendar创建Date。但是在我的测试案例中,当我将日期设置为31/12或30/12时,日期的年份是我设置的日期年份+ 1.示例2018-12-29-> 2018-12-29但2018-12-30 -> 2019年12月30日。我不知道为什么?我的代码:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class MyClass {
    public static void main(String args[]) {
        calendarBug(2018, 11, 29);
        calendarBug(2018, 11, 30);
    }

    public static void calendarBug(int year, int month, int day) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.MONTH, month);
        calendar.set(Calendar.DAY_OF_MONTH, day);
        Date date = calendar.getTime();
        System.out.println(new SimpleDateFormat("YYYY-MM-dd").format(date));
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

2018-12-29
2019-12-30
Run Code Online (Sandbox Code Playgroud)

java date java-date

1
推荐指数
1
解决办法
175
查看次数

为什么sdf.format(date)在Java中将2018-12-30转换为2019-12-30?

我正在尝试将日期转换为字符串,但转换时将2018年更改为2019年。

我尝试了不同的日期,它有效。它仅在2018年12月30日和12月31日失败。

SimpleDateFormat fmt = new SimpleDateFormat("YYYY-MM-dd");
Date date = fmt.parse("2018-12-30");
String date2 = fmt.format(date);
Run Code Online (Sandbox Code Playgroud)

预期结果:2018-12-30

实际结果:2019-12-30

java date

1
推荐指数
1
解决办法
103
查看次数

设置输入日期并将其添加到列表中

基本上,我想设置日期并将其保存到列表中.从下面的代码:

public List<RecordList> createRecord(BigDecimal yr){

    for (int index = 0; index <= 14; index++) {
        RecordList value = new RecordList();
        if(index == 0){
            value.setStartDt(toDate(("01-04-" + yr)));
            value.setEndDt(toDate(("30-04-" + yr)));
        }
        if(index == 1){
            value.setStartDt(toDate(("01-05-" + yr.add(new BigDecimal(1)))));
            value.setEndDt(toDate(("31-05-" + yr.add(new BigDecimal(1)))));
        }
        createRecord.add(newRecordValue);
    return createRecord;
}

private Date toDate(String date) {
    Date newDate = null;
    try {
        newDate = new SimpleDateFormat("dd-MM-YYYY").parse(date);
    }
    catch (ParseException e) {
        e.printStackTrace();
    }
    return newDate;
}
Run Code Online (Sandbox Code Playgroud)

会发生什么,当我将年份设置为2017年时,输出与我设置的不匹配:

"StartDate": "30-12-2017",
 "EndDate": "30-12-2017"
Run Code Online (Sandbox Code Playgroud)

并且它不会增加到明年,而是减少到:

"StartDate": "30-12-2016",
 "EndDate": …
Run Code Online (Sandbox Code Playgroud)

java date-parsing simpledateformat

0
推荐指数
1
解决办法
70
查看次数

SimpleDateFormat没有给出正确的日期

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class myTests {

    public static void main(String[] args) {
        DateFormat formatter = new SimpleDateFormat("YYYY-MMM-dd", Locale.US); 
        try {
            Date sortingDate = (Date)formatter.parse("2017-Jul-13");
            System.out.println("Sorted Date is:"+sortingDate);

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

结果是

排序日期为:2017年1月1日00:00:00太平洋标准时间

为什么不显示我给2017年7月13日的日期你可以告诉我.

谢谢安倍晋三

java simpledateformat

0
推荐指数
1
解决办法
60
查看次数