Java 当用户输入为字符串时如何更新日期时间

Java 当用户输入为字符串时如何更新日期时间,java,Java,如果我有此用户输入字符串:2014/03/31 14:52如果超过13:00,我如何检查小时数,然后将日期更新到第二天13:00,如下所示:2014/04/01 13:00?如果小于13:00,例如:2014/03/31 09:52,则我想将日期时间更新为2014/03/31 13:00 有什么建议吗?首先通过子字符串从字符串中获取小时数,然后将该字符串解析为整数,然后检查值是否大于或小于13。然后应用逻辑。下面的代码将帮助您 String s="2014/03/31 14:52";

如果我有此用户输入字符串:
2014/03/31 14:52
如果超过13:00,我如何检查小时数,然后将日期更新到第二天13:00,如下所示:
2014/04/01 13:00
?如果小于13:00,例如:
2014/03/31 09:52
,则我想将日期时间更新为
2014/03/31 13:00


有什么建议吗?

首先通过子字符串从字符串中获取小时数,然后将该字符串解析为整数,然后检查值是否大于或小于13。然后应用逻辑。下面的代码将帮助您

    String s="2014/03/31 14:52";
     String s1=s.substring(11, s.length());


     System.out.println(s1);
    String s2[]=s1.split(":");

    if(Integer.parseInt(s2[0])>=13 && Integer.parseInt(s2[1])>0){

        System.out.println("Here apply your logic");


    }
如果整数大于13:00,则将原始字符串解析为Date,然后使用日历简单地添加一天

希望这对你有帮助

您可以使用以下逻辑检查小时和分钟,并根据验证设置日期和时间

    String s="2014/03/31 14:52";
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm");

    Date date = sdf.parse(s) ;// given date
    Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance
    calendar.setTime(date);   // assigns calendar to given date 
    int hrs=    calendar.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format

    int min=calendar.get(Calendar.MINUTE);

    System.out.println("hrs-->"+hrs);
    System.out.println("min-->"+min);

    if(hrs>=13 && min>0){
        calendar.add(Calendar.DATE, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 13);
        calendar.set(Calendar.MINUTE, 00);
        Date newDate=calendar.getTime();
        String newDateS=sdf.format(newDate);
        System.out.println(newDateS);
    }

希望以上代码对您有所帮助。

这应该适合您

    String s="2014/03/31 14:52";
     String s1=s.substring(11, s.length());


     System.out.println(s1);
    String s2[]=s1.split(":");

    if(Integer.parseInt(s2[0])>=13 && Integer.parseInt(s2[1])>0){

        System.out.println("Here apply your logic");


    }
class DateTimerTester {

  public static String convert(String input) {    

    DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm");
    GregorianCalendar cal = new GregorianCalendar();
    try {
      Date date;
      date = df.parse(input); 
      cal.setTime(date);

      if (cal.get(Calendar.HOUR_OF_DAY) >= 13) {
        cal.add(Calendar.DATE, 1);
        cal.set(Calendar.HOUR_OF_DAY, 13);
        cal.set(Calendar.MINUTE, 0);     
      } else {
        cal.set(Calendar.HOUR_OF_DAY, 13);
        cal.set(Calendar.MINUTE, 0);
      }
      return df.format(cal.getTime());
    }
    catch (ParseException e) {
      e.getStackTrace();
    }
    return "(?!Bad date format!?)";
  }

  public static void main(String[] args) {

    DateTimerTester test = new DateTimerTester();    

    System.out.println(test.convert("2014/03/31 09:52"));
  }
}

Java对日期和时间的支持现在是一个笑话。

您使用的是什么类型?只是线?或者像乔达时间之类的?java.util.Date?字节数组?用户输入类型为字符串。您尝试过什么吗?如果不是,则是一个关于如何从字符串中解析日期并使用
日历
类的示例。您可以使用
yyyy/MM/dd HH:MM
作为格式字符串。请试一试。是的,我现在已经可以将字符串转换为日期时间格式了。但我的问题是,我不知道如何只得到几个小时来比较,如果超过13:00,那么我不知道如何将其更新到第二天,并将时间设置为第二天的13:00。