Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java重新格式化日期_Java_Date - Fatal编程技术网

使用Java重新格式化日期

使用Java重新格式化日期,java,date,Java,Date,这是我在一次在线面试测试中得到的问题 输出格式如下 2052年10月20日转换为2052-10-20 1933年6月6日改为1933-06-06 任何人都可以编写一个方法来返回字符串数组,其中每个索引i包含转换为YYYY-MM-DD格式的日期值 这是使用Java将1984年3月1日转换为1984-03-01的代码 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date

这是我在一次在线面试测试中得到的问题

输出格式如下

2052年10月20日转换为2052-10-20

1933年6月6日改为1933-06-06

任何人都可以编写一个方法来返回字符串数组,其中每个索引i包含转换为YYYY-MM-DD格式的日期值

这是使用Java将1984年3月1日转换为1984-03-01的代码

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

public class DateFormattingTest {

 public void date(String dateString) throws ParseException {

  // This Regular Expression will replace st to blank
  String dateString1 = dateString.replaceFirst("[a-zA-Z]{2}", "");
  //create Date Format and Parse it based on input

  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d MMMM yyyy");
  Date rightNow = simpleDateFormat.parse(dateString1);

  // Now create Date format for output type. and format the input
  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  String formattedDate = dateFormat.format(rightNow);
  System.out.println(formattedDate);
 }

 public static void main(String[] args) throws ParseException {
  String dateString = "1st March 1984";
  DateFormattingTest t = new DateFormattingTest();
  t.date(dateString);
 }
}
在上述代码中,输入是硬编码的
String dateString=“1984年3月1日”
它给出了正确的输出

但是根据问题,输入应该是以日-月-年的形式的字符串数组,输出应该返回格式为YYYY-MM-DD的字符串数组。我在上面的代码中编写了dates()方法,类似于date()方法。在处理IOException的解决方案main方法中,它是预写的main方法,我们应该在main方法中传递我们的方法以返回输出,但这里我的方法处理的是ParseException,它不是给定程序中的main方法处理的,所以我得到了ParseException处理错误,那么还有其他方法来编写函数吗给出输出


“d MMMM yyyy”
需要使用本地语言的月份,请尝试将SimpleDataFormat的语言环境设置为英语。此外,没有必要删除“st”,请尝试“d'st'MMMM yyyy

我对这个问题投了否决票,因为您在这里发布了代码,但没有说明它有什么问题。我们希望看到您希望代码做什么,为什么您希望它这样做,它实际上在做什么(在适当的地方有完整的错误消息和堆栈跟踪),以及为什么它是错误的。请把你的问题包含在这个信息里,然后我会考虑撤回我的投票。不要在2017使用<代码> SimpleDateFormat <代码>。这是出了名的麻烦,而且它和
Date
都早已过时。我们有这么多更好的选择。