datetime—如何在java中将“hh mm a”格式字符串转换为秒

i5desfxk  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(544)

我有一个字符串“6:00am”,我想用java把这个字符串转换成秒或毫秒。请给我建议转换这个的标准方法。
从午夜“00:00 am”开始的秒数

von4xj4u

von4xj4u1#

当您需要处理日期时间计算时,joda time是一个很好的选择。

import org.joda.time.*;
import org.joda.time.format.*;

DateTimeFormatter fmt = DateTimeFormat.forPattern("K:mm a");
DateTime end = fmt.parseDateTime("6:00 AM");
DateTime start = fmt.parseDateTime("00:00 AM");
Interval interval = new Interval(start,end);
long millSec = interval.toDurationMillis();
long second = interval.toDuration().getStandardSeconds();
kqlmhetl

kqlmhetl2#

java 7

转换 StringDate ...

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a");
TimeZone gmt = TimeZone.getTimeZone("GMT");
sdf.setTimeZone(gmt);
Date date = sdf.parse("6:00 am");

因为没有日期信息,所以这将是从epoch开始的毫秒+您的时间。
转换 Date 到秒

long seconds = date.getTime() / 1000;
System.out.println(seconds);

哪些输出 21600 秒、360分钟或6小时

java 8

更像是。。。

LocalTime lt = LocalTime.parse("6:00 AM", 
                DateTimeFormatter.ofPattern("h:m a"));
System.out.println(lt.toSecondOfDay());

…例如。。。

乔达蒂姆

LocalTime lt = LocalTime.parse("6:00 am", 
                new DateTimeFormatterBuilder().
                                appendHourOfDay(1).
                                appendLiteral(":").
                                appendMinuteOfHour(1).
                                appendLiteral(" ").
                                appendHalfdayOfDayText().toFormatter());
LocalTime midnight = LocalTime.MIDNIGHT;
Duration duration = new Duration(midnight.toDateTimeToday(), lt.toDateTimeToday());
System.out.println(duration.toStandardSeconds().getSeconds());

相关问题