Java 如何从“更改日期和时间格式”;yyyy MM dd HH:MM:ss“;至;h:嗯,是吗;?
我使用下面的代码将数据和时间格式化为时间。但它不起作用。有人能帮我解决这个问题吗Java 如何从“更改日期和时间格式”;yyyy MM dd HH:MM:ss“;至;h:嗯,是吗;?,java,date,datetime,Java,Date,Datetime,我使用下面的代码将数据和时间格式化为时间。但它不起作用。有人能帮我解决这个问题吗 try { String actualDate = m.getDate();//get date as"28-aug-2015 6:46:32 pm" Date Date= new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss").parse(actualDate); convertDate = new SimpleDateFo
try {
String actualDate = m.getDate();//get date as"28-aug-2015 6:46:32 pm"
Date Date= new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss").parse(actualDate);
convertDate = new SimpleDateFormat("h:mm a").format(Date);//6:46 am
}
catch (ParseException e) {
e.printStackTrace();
}
转换格式后,我得到的“convertDate”值为“6.46 am”,但现在时间是“6:46 pm”。如何解决此问题。您有一些错误,这就是您想要的:
try {
String actualDate = m.getDate();//get date as"28-aug-2015 6:46:32 pm"
Date Date= new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss").parse(actualDate);
convertDate = new SimpleDateFormat("h:mm a").format(Date);//6:46 am
}
catch (ParseException e) {
e.printStackTrace();
}
Date date= new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss").parse(actualDate);
convertDate = new SimpleDateFormat("H:mm").format(date);
如果您使用am/pm,则:
Date date= new SimpleDateFormat("dd-MMM-yyyy h:mm:ss a").parse(actualDate);
convertDate = new SimpleDateFormat("h:mm a").format(date);
java.time
现代方法使用java.time类
我们使用一个生成器将格式化程序标记为不区分大小写,因为您的月名和AM/PM的拼写忽略了美国英语的文化规范
String input = "28-aug-2015 6:46:32 pm";
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern( "dd-MMM-uuuu h:m:s a" );
DateTimeFormatter formatter = builder.toFormatter().withLocale( Locale.US) ;
LocalDateTime ldt = LocalDateTime.parse( input , formatter );
看这个
输入:2015年8月28日下午6:46:32
ldt.toString():2015-08-28818:46:32
自动本地化
如果您的输入符合某些特定地区的文化规范,请使用DateTimeFormatter.ofcalizeddatetime
而不是此生成器方法
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 该项目现已启动,建议迁移到类 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*
类
从哪里获得java.time类
- 、和更高版本-标准Java API的一部分,带有捆绑实现。
- Java9添加了一些次要功能和修复
- 及
- 大多数java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(你能添加代码以供参考吗?当前时间是上午/下午?上午/下午是“a”,但你应该使用“h”而不是“h”。所有细节都在这里:我现在编辑了我的代码,时间显示为“6.58 am”,但应该显示为“6.58 pm”我的错误在哪里请解释。如果在输入和输出中使用am/pm,您的代码应该是:Date Date=new SimpleDateFormat(“dd-MMM-yyyy h:mm:ss a”)。parse(actualDate);String convertDate=new SimpleDateFormat(“h:mm a”)。format(Date);仅供参考,诸如和
等非常麻烦的日期时间类现在被内置于Java8和更高版本中的类所取代。java.text.simpleDataFormat