题中要求输入以空格分隔的一组字符串,那么这里就可以用split(" ")的方式将字符串进行拆分并用数组进行接收,这里的代码参考写法如下:


String[] arr = str1.split(" ");

由于需要用户输入年、月、日、时、分、秒,所以我们应该判断得到的数组长度是否为6,若为6,则将拆分后的字符重新组装成预设代码中给好的时间戳形式的字符串,即 "年-月-日 时:分:秒",并将这个字符串转化为Date类型。这部分代码参考写法如下:

if(arr.length != 6){
    System.out.println("您输入的数据不合理");
}else{
    String str = arr[0]+"-"+arr[1]+"-"+arr[2]+" "+arr[3]+":"+arr[4]+":"+arr[5];
    Date date = sdf.parse(str);
}

因为用户输入为北京时间,所以北京时间按照题目要求格式输出即可,纽约时间为北京时间减去12* 60 * 60 * 1000(十二小时的毫秒数)将这部分代码写入else代码块中即可,这部分的参考代码如下:

System.out.println("北京时间为:" + sdf.format(date.getTime()));
System.out.println("纽约时间为:" + sdf.format(date.getTime()

附上完整代码

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Scanner in = new Scanner(System.in);
        String str1 = in.nextLine();

        //write your code here......

String[] arr = str1.split(" ");
if(arr.length != 6){
	System.out.println("您输入的数据不合理");
}else{
	String str = arr[0]+"-"+arr[1]+"-"+arr[2]+" "+arr[3]+":"+arr[4]+":"+arr[5];

	Date date = sdf.parse(str);

    System.out.println("北京时间为:" + sdf.format(date.getTime()));
    System.out.println("纽约时间为:" + sdf.format(date.getTime() - (long)12* 60 * 60 * 1000));
}
    }
}