我必须以24小时格式从API转换日期,但SimpleDateFormat(“dd/MM/yy kk: mm”)显示的是24:30而不是00:30。
我收到的日期是这样的格式:“2020-05-25 10:34:27”
我将日期转换如下:
val newDate: Date = SimpleDateFormat("yyyy-MM-dd hh:mm:ss",
Locale.getDefault()).parse(vehiculos[b].fecha)
val d = SimpleDateFormat("yyyy-MM-dd kk:mm", Locale.getDefault())
.parse(SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
Locale.getDefault()).format(newDate))
val newFecha = SimpleDateFormat("dd/MM/yy kk:mm", Locale.getDefault()).format(d)
考虑使用java。时间,现代Java日期和时间API,用于日期和时间工作。使用java。时间将日期和时间保存在本地日期时间对象中。LocalDateTime是一天中的日期和时间,与UTC之间没有时区偏移。您还可以考虑使用带有时区的日期和时间。
当您从API收到字符串时,解析它。我正在演示如何使用此格式化程序:
private static final DateTimeFormatter API_PARSER
= new DateTimeFormatterBuilder().append(DateTimeFormatter.ISO_LOCAL_DATE)
.appendLiteral(' ')
.append(DateTimeFormatter.ISO_LOCAL_TIME)
.toFormatter(Locale.ROOT);
解析过程如下所示。为了进行演示,我花了一天中的一段时间,时间为00小时,以便我们可以检查格式化后它们是否为24小时。
String fromApi = "2020-05-25 00:34:27";
LocalDateTime dateTime = LocalDateTime.parse(fromApi, API_PARSER);
System.out.println(dateTime);
此代码段的输出为:
2020-05-25T00:34:27
只有当您需要提供字符串输出时,例如给用户,才能格式化我们进入字符串的LocalDateTime
。为此,我们需要第二个格式化程序:
private static final DateTimeFormatter NEW_FORMATTER
= DateTimeFormatter.ofPattern("dd/MM/yy HH:mm", Locale.ROOT);
有了它,我们可以做到:
String formattedDateTime = dateTime.format(NEW_FORMATTER);
System.out.println(formattedDateTime);
25/05/20 00:34
我们得到了所需的00小时。
Java语言时间在旧的和新的Android设备上都能很好地工作。它至少需要Java 6。
您应该使用大写字母K
SimpleDateFormat("dd/MM/yy KK:mm", Locale.getDefault())
k: 一天中的小时数(1-24)
K:小时在上午/下午(0-11)
查看此网站进行测试:http://www.sdfonlinetester.info/
问题内容: 我尝试将格式日期解析为dd / mm / yyyy 这是我的代码 错误 请帮助 现在还可以 问题答案: 您需要将日期格式模式与输入匹配
我正在与外部API通信,我以这种格式接收日期 当我试图将其转换为yyyy-MM-dd时,它不会转换。 入住日期:
在我的脚本中,我提取了一个excel,在一个名为“Time”的列中有一个dtype对象,在该列中有一个类似于“14:00:00”的小时,我想将该列转换为_datetime,但是当我这样做时: 我把年、月和日加在一起,我不希望发生这种情况,我还想把这列作为日期时间,这样我就可以减去另一个时间,得到秒。我如何将其传递到只有小时、分钟和秒的datetime?
我有如下代码 每当我通过将其设置为实体来保存到我的数据库时,它会添加5:30作为偏移量
我只想它显示从当前时间增加30分钟到一天结束前-今天时间是09:46AM它应该显示像的特定日期。但在我的代码里它从00:00...23:30显示一整天。下面是我的代码:
问题内容: 我正在尝试将()解析为,但是日期却超出预期。 码: 当我从上面的代码中将返回的日期输入数据库时,我正确地获取了日期,但是时间始终是00:00。 问题答案: YYYY应该是yyyy