相关疑难解决方法(0)

当我将 LocalDate 格式化为 dd.MMM.YYYY 时,我得到 01.Jan..2000,带有两个点

我正在尝试将LocalDate变量格式化为dd.MMM.YYYY

DateTimeFormatter.ofPattern("dd.MMM.yyyy")
Run Code Online (Sandbox Code Playgroud)

问题是,超过一半的时间我得到两个点。例如01-01-2000转到01.Jan..2000.

我知道为什么我会遇到这个问题,因为这三个Ms。当我使用时dd.MM.yyyy,我没有01.01.2000问题。第三M是问题。

我怎样才能解决这个问题?

java date-formatting java-time

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

将"2013年2月1日星期五"转换为"2013-02-01"

如何在Java中执行此转换?

目前,我正在做:

public static String formatDate(String strDateToFormat) {
    try {
        SimpleDateFormat sdfSource = new SimpleDateFormat("EEEE, MMMM DD, YYYY");
        Date date = sdfSource.parse(strDateToFormat);
        SimpleDateFormat sdfDestination = new SimpleDateFormat("yyyy-MM-dd");
        return sdfDestination.format(date);
    } catch (ParseException pe) {
        System.err.println("Parse Exception : " + pe);
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致格式不正确.它给了我以下输出:

Friday, February 1, 2013 > 2013-01-04
Thursday, January 31, 2013 > 2013-01-03
Run Code Online (Sandbox Code Playgroud)

java date simpledateformat

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

无法将单个数字小时和小写的am-pm解析为Java 8 LocalTime

当我尝试运行以下代码时:

LocalTime test = LocalTime.parse("8:00am", DateTimeFormatter.ofPattern("hh:mma"));
Run Code Online (Sandbox Code Playgroud)

我明白了:

Exception in thread "main" java.time.format.DateTimeParseException: Text '8:00am' could not be parsed at index 0
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

datetime localtime datetime-parsing java-8 java-time

5
推荐指数
3
解决办法
1832
查看次数

如何使用 LocalTime.parse 解析任何格式的时间?

LocalTime我在使用 java解析包含小时、分钟和秒的字符串时遇到问题。

LocalTime t = LocalTime.parse("8:30:17"); // Simplification
Run Code Online (Sandbox Code Playgroud)

这会引发以下异常:

线程“main”中的异常 java.time.format.DateTimeParseException:无法在索引 0 处解析文本“8:30:17”

java time time-format localtime datetime-parsing

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

为什么我不能用Java中的模式"MMMMM dd"解析SimpleDateFormat?

我需要解析像1981年2月12日这样的字符串作为日期.我使用SimpleDateFormat.但如果我这样做:

new SimpleDateFormat("MMMMM dd, yyyy").parse("February 12, 1981")
Run Code Online (Sandbox Code Playgroud)

我得到java.text.ParseException.

我试图减少它以查看问题所在.第一:

new SimpleDateFormat("MMMMM").parse("February")
Run Code Online (Sandbox Code Playgroud)

作品.然后:

new SimpleDateFormat("MMMMM dd").parse("February 12")
Run Code Online (Sandbox Code Playgroud)

不再起作用了.谁知道为什么?我也试过了new SimpleDateFormat("MMMMM' 'dd").

我正在使用JRE 1.6.0_06.

java parsing date

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

Java.util.Date:尝试更多地了解UTC和ET

我住在北卡罗来纳州,顺便说一句,这是在东边.所以我编译并运行这段代码并打印出同样的东西.文档说java.util.date尝试反映UTC时间.

Date utcTime = new Date();
Date estTime = new Date(utcTime.getTime() + TimeZone.getTimeZone("ET").getRawOffset());
DateFormat format = new SimpleDateFormat("dd/MM/yy h:mm a");
System.out.println("UTC: " + format.format(utcTime));
System.out.println("ET: " + format.format(estTime));   
Run Code Online (Sandbox Code Playgroud)

这就是我得到的

UTC: 11/05/11 11:14 AM
ET: 11/05/11 11:14 AM
Run Code Online (Sandbox Code Playgroud)

但是,如果我去这个网站它试图反映所有不同的时间,UTC和ET是不同的.我在这里做错了什么

java timezone date

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

如何转换UTC日期字符串并删除Java中的T和Z?

我正在使用Java 1.7。

尝试转换:

2018-05-23T23:18:31.000Z 
Run Code Online (Sandbox Code Playgroud)

进入

2018-05-23 23:18:31
Run Code Online (Sandbox Code Playgroud)

DateUtils类:

public class DateUtils {

    public static String convertToNewFormat(String dateStr) throws ParseException {
        TimeZone utc = TimeZone.getTimeZone("UTC");
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
        sdf.setTimeZone(utc);
        Date convertedDate = sdf.parse(dateStr);
        return convertedDate.toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试使用它时:

String convertedDate = DateUtils.convertToNewFormat("2018-05-23T23:18:31.000Z");
System.out.println(convertedDate);
Run Code Online (Sandbox Code Playgroud)

得到以下异常:

Exception in thread "main" java.text.ParseException: Unparseable date: "2018-05-23T23:22:16.000Z"
   at java.text.DateFormat.parse(DateFormat.java:366)
   at com.myapp.utils.DateUtils.convertToNewFormat(DateUtils.java:7)
Run Code Online (Sandbox Code Playgroud)

我可能做错了什么?

有没有更简单的方法(例如Apache Commons lib)?

java utc parseexception java-7 datetime-parsing

4
推荐指数
3
解决办法
1万
查看次数

解析 LocalDate 但得到 DateTimeParseException;dd-MMM-uuuu

我正在尝试将 a 转换StringLocalDateusing DateTimeFormatter,但收到异常:

java.time.format.DateTimeParseException:无法在索引 5 处解析文本“ 2021-10-31 ”

我的代码是

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-uuuu");
String text = "2021-10-31";
LocalDate date = LocalDate.parse(text, formatter);
Run Code Online (Sandbox Code Playgroud)

我正在尝试从输入日期转换2021-10-3131-Oct-2021.

java java-time localdate datetimeformatter datetimeparseexception

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

SimpleDateFormat似乎给出了错误的结果

我正在使用Java 7和Clojure 1.4.

我在Clojure中编写了一些数据库测试,用于包含Date对象的表,使用OracleDB JDBC.

我需要比较我收到的日期(一个Date对象)和String- 所以我可能需要将该字符串转换为一个Date对象.经过一些谷歌搜索,我发现了Java SimpleDateFormat.

这是我使用的(有额外的东西用于调试)

(defn parseDate [date]
  (do (debug (str "Parsing date: " date ))
    (let [ dateobj (java.text.SimpleDateFormat. "dd-MMM-YY")
           parsed (do (. dateobj setLenient false) (. dateobj parse date))]
      (debug (str "Result: " parsed)) parsed)))
Run Code Online (Sandbox Code Playgroud)

我扔了一些日期,我得到以下输出..

Parsing date: 01-jan-12
Result: Mon Jan 02 00:00:00 GMT 2012
Parsing date: 01-jan-13
Result: Mon Dec 31 00:00:00 GMT 2012
Parsing date: 00-jan-12
Result: Mon Jan 02 00:00:00 …
Run Code Online (Sandbox Code Playgroud)

java date clojure

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

如何更改 Java 中的时间格式 - “am/pm”与“AM/PM”

先前创建的测试使用DateTimeFormatter.ofPattern("ha");并返回“10AM”(表示“ 2017-04-09T10:00-06:00[US/Mountain]”)。

在我的 MacO 和 Java 下 ['openjdk version "11.0.12"'] 我得到“10am”

"10AM" != "10am"
Run Code Online (Sandbox Code Playgroud)

在规范中,我看到“ha”应该创建“10AM”而不是“10am”,请参阅:https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

有什么建议吗?

java datetime-format timeofday datetimeformatter

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