是否在同一报表中返回两个日期变量



我必须编写一个代码,其中,我必须拆分一行字符串。问题是我需要传递两个字符串,一个是日期,另一个是时间。我可以做到,但如果我不加入这两个变量,我该如何返回?用"+"?

String[] Division = linea.split(",");
LocalDateTime fecha = Conversion(Division[0],Division[1]); //12/06/2017,12:34

这是我创建日期和时间的代码,但我不知道如何返回,

private static LocalDateTime Conversion(String fechas , String Horas){
LocalDateTime FechaConvertida =  LocalDateTime.parse(fechas,DateTimeFormatter.ofPattern("dd-MM-yyyy"));
LocalDateTime HoraConvertida = LocalDateTime.parse(Horas,DateTimeFormatter.ofPattern("HH:mm"));
return ;

您只能返回一个对象。因此,如果您需要返回多个对象,可以使用以下方法之一:

  1. 定义一个类来表示两个日期:
public class FechaConvertida {

public LocalDateTime FechaConvertida;
public LocalDateTime HoraConvertida;

public FechaConvertida(LocalDateTime fechaConvertida, LocalDateTime horaConvertida) {
super();
FechaConvertida = fechaConvertida;
HoraConvertida = horaConvertida;
}    
}

然后返回一个FechaConvertida实例:

private static FechaConvertida Conversion(String fechas , String Horas){
LocalDateTime fechaConvertida =  LocalDateTime.parse(fechas,DateTimeFormatter.ofPattern("dd-MM-yyyy"));
LocalDateTime horaConvertida = LocalDateTime.parse(Horas,DateTimeFormatter.ofPattern("HH:mm"));
return new FechaConvertida(fechaConvertida, horaConvertida );
  1. 返回LocalDateTime的数组:
private static LocalDateTime[] Conversion(String fechas , String Horas){
LocalDateTime fechaConvertida =  LocalDateTime.parse(fechas,DateTimeFormatter.ofPattern("dd-MM-yyyy"));
LocalDateTime horaConvertida = LocalDateTime.parse(Horas,DateTimeFormatter.ofPattern("HH:mm"));
LocalDateTime fechaArray []= {fechaConvertida, horaConvertida}; 
return fechaArray;
  1. 返回列表:
private static Collection<LocalDateTime> Conversion(String fechas , String Horas){
LocalDateTime fechaConvertida =  LocalDateTime.parse(fechas,DateTimeFormatter.ofPattern("dd-MM-yyyy"));
LocalDateTime horaConvertida = LocalDateTime.parse(Horas,DateTimeFormatter.ofPattern("HH:mm"));
Collection<LocalDateTime> dates = new LinkedList<LocalDateTime>();
dates.add(fechaConvertida)
dates.add(horaConvertida)
return dates;

我更改变量的名称是为了降低第一个字母的大小写,因为作为一种好的做法,变量名称不以大写字母开头。

基于您正在转换一个单独的"日期";以及";时间";值,我会使用LocalDateLocalTime来解析输入,然后将它们组合为LocalDateTime结果,例如。。。

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
new Main();
}
public Main() {
// Note 12/06/2017 does not match the format of dd-MM-yyyy
LocalDateTime fecha = Conversion("12-06-2017", "12:34");
System.out.println(fecha);
}
private static LocalDateTime Conversion(String fechas, String Horas) {
LocalDate FechaConvertida = LocalDate.parse(fechas, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
LocalTime HoraConvertida = LocalTime.parse(Horas, DateTimeFormatter.ofPattern("HH:mm"));
return LocalDateTime.of(FechaConvertida, HoraConvertida);
}
}

打印。。。

2017-06-12T12:34

您可以返回LocalDateTime的Map,请参阅下面的代码作为示例:

String[] Division = linea.split(",");
LocalDateTime fecha = doConversion(Division[0],Division[1]).get("fecha");
LocalDateTime hora = doConversion(Division[0],Division[1]).get("hora");

private static Map<LocalDateTime> doConversion(String fechas , String Horas) {
LocalDateTime fechaConvertida = LocalDateTime.parse(fechas, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
LocalDateTime horaConvertida = LocalDateTime.parse(Horas, DateTimeFormatter.ofPattern("HH:mm"));
Map<LocalDateTime> localDateTimeMap = new HashMap<>();
localDateTimeMap.put("fecha", fechaConvertida);
localDateTimeMap.put("hora", horaConvertida);
return localDateTimeMap;
}

顺便说一句,在Java中,方法和变量名称以小写字母开头,称为Standard(实际上称为camelCase(

最新更新