当前位置: 首页 > 知识库问答 >
问题:

java-将两个字符串组合成一个date对象

平俊茂
2023-03-14

主要的问题是第五次会议的形式是什么

共有1个答案

严承允
2023-03-14

由于日期字符串5th Jan没有年份,因此必须使用某个默认年份,例如当前年份,您可以从localdate.now()获取该年份。可以使用DateTimeFormatterBuilder#ParseDefaulting设置默认值。此外,还可以使用DateTimeFormatterBuilder#ParseCaseInsensitive使解析器不区分大小写。

为了解析日期字符串5th Jan,可以使用模式d'th'mmm。但是,为了处理其他后缀,如第3和第1等,您应该使用模式d['th']['st']['rd']['nd']mmm,其中方括号内的模式是可选的。

为了解析像8:15这样的时间字符串,可以使用模式H:M

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        DateTimeFormatter dtfForDate = new DateTimeFormatterBuilder()
                                        .parseCaseInsensitive()
                                        .parseDefaulting(ChronoField.YEAR, date.getYear())
                                        .appendPattern("d['th']['st']['rd']['nd'] MMM")
                                        .toFormatter(Locale.ENGLISH);

        DateTimeFormatter dtfForTime = DateTimeFormatter.ofPattern("H:m", Locale.ENGLISH);

        String strDate = "5th Jan";
        String strTime = "8:15";

        LocalDateTime ldt = LocalDate.parse(strDate, dtfForDate)
                                        .atTime(LocalTime.parse(strTime, dtfForTime));

        // Print the default string value i.e. the value returned by ldt.toString()
        System.out.println(ldt);

        // The default format omits seconds and fraction of second if they are 0. In
        // order to retain them in the output string, you can use DateTimeFormatter
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss");
        String formatted = dtf.format(ldt);
        System.out.println(formatted);
    }
}
2021-01-05T08:15
2021-01-05T08:15:00
 类似资料:
  • 给定一个字符串,我们必须将字符串分成所有不同的两部分和三部分(排列不重要)。例如: 答案是 答案是 怎么做?你能提供一个尽可能的时间复杂度的代码吗?

  • 首先,我对反应式编程有点陌生。在参加了一些关于reactor和spring 5.0的演讲后,我想自己尝试一下这个编程模型。 我有一个应用程序,它使用WebClient从不同的API构建两个Flux对象。我想将这2个对象组合成一个并将其返回给用户。 代码示例如下所示: 现在在我的handler方法中: 我应该使用反应器API中的什么方法来实现这一点?我找到了一些方法来组合像组合最新的对象,但是在这种

  • 我在一秒钟内通过蓝牙从远程设备接收到两个字符串。(第一个字符串,然后在几毫秒后是第二个字符串)。例如: 和 我应该如何以及在哪里存储我的第一个字符串,等待下一个字符串,然后像头块一样组合这两个字符串?有什么建议吗。

  • 问题内容: 我正在尝试编写一个Java代码,该代码返回结合了字符和重音符号的单个字符。合并的实际结果是一个字符串,而不是一个字符。下面是一个简单的方法来说明我要执行的操作。谢谢 问题答案: 规范化器可以根据需要分解/合成角色: 结果是两个字符(i,双点) 结果是一个字符(ï) 如果我正确理解你,你会寻找 对于双点使用。

  • 问题内容: 我有这串 如何将此字符串拆分为每个子字符串包含2个字符的子字符串?我很困惑,因为我找不到分隔符来分隔它们。 问题答案: