gpt4 book ai didi

Android joda 时间从 24 转换为 12

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:12 24 4
gpt4 key购买 nike

我像这样将日期插入数据库:

long d = cal.getTimeInMillis();
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
String time_string_f=dateFormat.format(d);

time_string_f 是要插入数据库的字符串,输出如下:

07/09/2015 20:47:00

我想从数据库中获取它并将其格式化为 12 小时的上午/下午。

所以我从 here 得到了这个解决方案

DateTimeFormatter dtf = DateTimeFormat.forPattern("dd-MM-yyyy hh:mm:ss.SSa");
DateTime jodatime = dtf.parseDateTime(string_date_from_database);
int yy= jodatime.getYear();

我得到年份只是为了检查它是否有效。

但它不起作用并给我这个错误:

07-09 22:34:48.399: I/FFFFF(7165): Invalid format: "07/09/2015 20:47:00" is malformed     at "/09/2015 20:47:00"

最佳答案

您数据库中的值的格式为 MM/dd/yyyy HH:mm:ss - 没有 AM/PM 后缀。
所以你应该解析没有 a 选项,然后将日期转换为 12 小时格式。
示例:

   String string_date_from_database = "07/09/2015 20:47:00"; 
DateTimeFormatter dtf = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");
DateTime jodatime = dtf.parseDateTime(string_date_from_database);
String dateIn12HourFormat = jodatime.toString("MM/dd/yyyy hh:mm:ssa");
// Now 'dateIn12HourFormat' looks like `07/09/2015 08:47:00PM`

您可以使用简单的实用方法:

   static final DateTimeFormatter hours24 = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");
static final DateTimeFormatter hours12 = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm:ssa");
static String convertTo12HoursFormat(String format24hours)
{
return hours12.print(hours24.parseDateTime(format24hours));
}

用法:

   String string_date_from_database = "07/09/2015 20:47:00";
String dateIn12HourFormat = convertTo12HoursFormat(string_date_from_database);

关于Android joda 时间从 24 转换为 12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24662584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com