英文:
Date formatting issue in Android
问题
我在将字符串转换为日期时遇到了问题。27-Jul-2020
是我日期的输入字符串。
SimpleDateFormat inputFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
Date parsedTransactionDate = inputFormat.parse(transactionDate);// 交易日期是 `27-Jul-2020`
它返回的输出是 Sun Jul 27 00:00:00 GMT+05:30 2020
。
我无法确定问题所在。
英文:
I am facing an issue while converting String to date. 27-Jul-2020
this is my input String for the date.
SimpleDateFormat inputFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
Date parsedTransactionDate = inputFormat.parse(transactionDate);//transaction date is `27-Jul-2020`
It's returing me output Sun Jul 27 00:00:00 GMT+05:30 2020
.
I'm unable to identify the issue
答案1
得分: 1
如果您只想获取日期,那么很遗憾,java.util.Date
不是一个好的选择。该API已经过时,因此我建议切换到 java.time
。使用 java.time.LocalDate
和 java.time.format.DateTimeFormatter
,这是一种方便且灵活的方式:
public static void main(String[] args) {
// 为解析提供一个格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.ENGLISH);
// 使用该格式化器解析示例字符串
LocalDate parsedTransactionDate = LocalDate.parse("27-Jul-2020", formatter);
// 打印LocalDate的默认格式
System.out.println(parsedTransactionDate);
// 或使用上面定义的格式化器打印它
System.out.println(parsedTransactionDate.format(formatter));
// 或使用具有不同区域设置的完全不同格式化器进行打印
System.out.println(parsedTransactionDate.format(
DateTimeFormatter.ofPattern("EEEE, dd 'de' MMMM uuuu", Locale.FRENCH))
);
}
输出结果如下:
2020-07-27
27-Jul-2020
lundi, 27 de juillet 2020
英文:
If you want just a date, then, unfortunately, java.util.Date
is not a good choice. That API is outdated anyway, so I suggest switching to java.time
. Use java.time.LocalDate
and a java.time.format.DateTimeFormatter
, it's a handy and flexible way:
public static void main(String[] args) {
// provide a formatter for parsing
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.ENGLISH);
// parse the example String using that formatter
LocalDate parsedTransactionDate = LocalDate.parse("27-Jul-2020", formatter);
// print the default format of a LocalDate
System.out.println(parsedTransactionDate);
// or print it using the formatter defined above
System.out.println(parsedTransactionDate.format(formatter));
// or print it using a totally different formatter with a different locale
System.out.println(parsedTransactionDate.format(
DateTimeFormatter.ofPattern("EEEE, dd 'de' MMMM uuuu", Locale.FRENCH))
);
}
the output is this
2020-07-27
27-Jul-2020
lundi, 27 de juillet 2020
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论