如何转换字符串迄今为止在Java 8中为“ 01/01/2019”

时间:2019-01-17 10:08:53

标签: java date java-8

我正在尝试使用Java 8的DateTimeFormatter将诸如“ 17/01/2019”之类的字符串转换成完全相同的日期。

我当前正在使用:

function View() {
  var test = $(this).Parent().val;
}

function Hide() {
  var test = $(this).Parent().val;
}

并收到错误消息:

  

java.time.format.DateTimeParseException:无法在索引0处解析文本”

这暗示我的格式有问题。

当前,我尝试使用默认格式以及LocalDate代替LocalDateTime

3 个答案:

答案 0 :(得分:0)

您正在尝试获取LocalDateTime而不是LocalDate

LocalDateTime dExpCompletionDate = LocalDateTime.parse(sExpCompletionDate, format);

这是一个LocalDate的小例子:

public static void main(String[] args) {
    String sExpCompletionDate = "17/01/2019";

    DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy", Locale.ENGLISH);

    LocalDate dExpCompletionDate = LocalDate.parse(sExpCompletionDate, format);
    // Converts LocalDate into LocalDateTime
    LocalDateTime dExpCompletionDate2 = LocalDate.parse(sExpCompletionDate, format).atStartOfDay();
    System.out.println(dExpCompletionDate);
    System.out.println(dExpCompletionDate2);
}

输出:

2019-01-17
2019-01-17T00:00

以下是LocalDateTime的示例:

public static void main(String[] args) {
    String sExpCompletionDate = "17/01/2019 14:22:11";

    DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss", Locale.ENGLISH);

    LocalDateTime dExpCompletionDate = LocalDateTime.parse(sExpCompletionDate, format);
    System.out.println(dExpCompletionDate);
}

输出:

2019-01-17T14:22:11

答案 1 :(得分:0)

由于"dd/MM/yyyy"是日期格式,因此无法使用它解析为DateTime。您可以做的是,解析为Date,然后将StartOfDay作为DateTime

DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDateTime dExpCompletionDate = LocalDate.parse("01/01/2019", format).atStartOfDay();

答案 2 :(得分:-2)

使用SimpleDateFormat。这是一个工作示例:

import java.text.SimpleDateFormat;  
import java.util.Date;  
public class StringToDateExample1 {  
public static void main(String[] args)throws Exception {  
    String sDate1="31/12/1998";  
    Date date1=new SimpleDateFormat("dd/MM/yyyy").parse(sDate1);  
    System.out.println("Date is : "+date1);  
}  
}  

有关更全面的答案,请参阅BalusC的reply