我想将更改时间格式更改为12小时到24小时。
我有一个像这样的日期字符串
String date = "2016-02-01";
String time = "10:00pm";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mmaa");
DateFormat outputformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date daaateee = null;
String output = null;
try{
String ddd =date + " " + time;
daaateee= df.parse(ddd);
output = outputformat.format(daaateee);
System.out.println(output);
}catch(ParseException pe){
pe.printStackTrace();
}
我试图改变这样但是它告诉我错误:
System.err: java.text.ParseException: Unparseable date: "2016-02-01 10:00pm" (at offset 16)
此代码适用于所有设备。但是没有使用具有marshmallow操作系统的Moto g3。是否有任何理由不转换棉花糖设备?
帮我转换时间格式12H到24H。 在此先感谢
答案 0 :(得分:2)
我怀疑问题可能是你没有指定语言环境 - 所以它使用你的系统语言环境,可能有不同的am / pm说明符。这是一个适用于桌面Java的示例:
import java.util.*;
import java.text.*;
class Test {
public static void main(String[] args) throws Exception {
String date = "2016-02-01";
String time = "10:00pm";
TimeZone utc = TimeZone.getTimeZone("Etc/UTC");
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mmaa", Locale.US);
inputFormat.setTimeZone(utc);
Date parsed = inputFormat.parse(date + " " +time);
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
outputFormat.setTimeZone(utc);
System.out.println(outputFormat.format(parsed));
}
}
请注意,我还将时区指定为UTC,以避免夏令时更改出现任何问题(日期/时间组合可能不明确或根本不存在)。
如果在Android下仍然无效,请尝试使用"yyyy-MM-dd hh:mmaa"
代替"yyyy-MM-dd hh:mma"
- 尽管我仍然期待以前的模式上班。这绝对值得指定时区和地区。
答案 1 :(得分:1)
支持上午/下午的日期格式需要是' a'而不是' aa'
所以你基本上需要做DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mma");