我通过api调用收到以下日期/时间格式:
"AcceptedDate": "2020-09-28T11:47:37.217",
"Pickup1ArrivedDate": "2020-10-06T17:28:12.6",
"Pickup1LoadedDate": "2020-10-06T17:57:54.84",
"Pickup1DepartedDate": "2020-10-06T18:18:59.927"
在Java / android studio中保存响应后,是否仍然以“ 11:47”格式显示时间。 任何帮助表示赞赏。谢谢:-)
答案 0 :(得分:1)
您可以使用substring()
创建用于执行此操作的方法:
public String stripRedundantDate(String date){
return date.substring(11, 16);
}
以下程序:
public class Main{
public static void main(String []args){
String time = "2020-09-28T11:47:37.217";
System.out.println(stripRedundantDate(time));
}
public static String stripRedundantDate(String date){
return date.substring(11, 16);
}
}
产生结果:
11:47
如果您的日期不是固定长度
使用以下内容:
public static String stripRedundantDate(String date){
return date.substring(date.indexOf(':')-2, date.indexOf(':')+3);
}
答案 1 :(得分:0)
我会将其转换为日期对象,然后以这种方式使用
LocalDate date = LocalDate.parse(apiResult.get("AcceptedDate"));
然后,我将其格式化为您想要的样子:
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
String dateString = format.format( date ); // this string will be the time you are looking for
答案 2 :(得分:0)
科特林
fun formatDate(date: String): String {
val input = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ENGLISH)
val output = SimpleDateFormat("12:08 PM", Locale.ENGLISH)
return output.format(input.parse(date)!!)
}
答案 3 :(得分:0)
只需在字母T之后输入接下来的5个字符
SELECT
ot.[CoSerNum] AS CoSerNum,
(SELECT MAX(ot.[CoSerNum]) FROM OutTest ot1 WHERE ot1.[CoSerNum] < ot.[CoSerNum]) AS lagCoSerNum
FROM OutTest ot
WHERE ot.SO = [Enter SO];
答案 4 :(得分:0)
我建议您考虑使用Java.time(现代的Java日期和时间API)进行日期和时间工作。
String acceptedDate = "2020-09-28T11:47:37.217";
LocalDateTime dateTime = LocalDateTime.parse(acceptedDate);
String timeString = dateTime.toLocalTime()
.truncatedTo(ChronoUnit.MINUTES)
.toString();
System.out.println(timeString);
输出为:
11:47
java.time在较新和较旧的Android设备上均可正常运行。它只需要至少 Java 6 。
org.threeten.bp
导入日期和时间类。java.time
。java.time
向Java 6和7(JSR-310的ThreeTen)的反向端口。