在“dd-MMM-yyyy”fromat中将String转换为Util日期

时间:2016-01-31 10:10:06

标签: java swing datepicker

我在Eclipse工作。 我有字符串日期=“12-DEC-2016”

现在我想将它转换为相同格式的实用日期。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

转换

要将String转换为特定格式的java.util.Date,您可以使用java.text.DateFormatDateFormat个对象可以通过调用StringDateformat()以及从DateString通过调用{{1}来执行双向转换}}。 parse()个对象可以通过多种方式获得,这里有一些:

  • 通过DateFormat中的static get*Instance()方法之一获取实例。当您希望格式位于用户的语言环境中时,这尤其有用。例如,DateFormat
  • 通过创建DateFormat.getDateInstance(DateFormat.SHORT)的实例来创建您自己的特定格式。例如,SimpleDateFormat

您应该考虑是否需要特定的固定格式,或者您是否需要用户的语言环境使用的格式。请注意,不同的国家/地区使用不同的格式。

如果格式不是针对用户,而是针对机器与机器之间的数据交换,则应考虑使用 ISO 8601 RFC 1123 作为格式。

另请考虑使用new SimpleDateFormat("dd-MMM-yyyy")包而不是java.time。如果您需要执行计算,java.util.Date包更强大。它通常会导致代码更容易理解和更精确,特别是关于时区处理,夏令时,本地时间与UTC等等。

注意:

  • 你在Eclipse工作并不重要。

参考

答案 1 :(得分:0)

java.time

accepted Answer by Hujer是正确的,但侧重于java.data.Date/.Calendar&的麻烦过时的类。 SimpleDateFormat的。如建议的那样,您应该使用Java 8及更高版本中内置的java.time框架。

LocalDate

新类包括LocalDate来表示仅限日期的值,而不包含时间或时区。

当您的字符串包含要翻译的字词,日期或月份的名称时,解析需要Locale。最好明确指定,而不是依赖于JVM当前的默认Locale。

String input = "12-DEC-2016";
DateTimeFormatter f = DateTimeFormatter.ofPattern( "d-MM-uuuu" );
f = f.withLocale( Locale.ENGLISH );
LocalDate ld = LocalDate.parse( input , f );