Java 如何获取用户在EditText中输入的时间并从中扣除5小时30分钟?
我有两个编辑文本供用户输入时间(24小时格式)。 如何从Edittext中获取这些时间,并从用户选择的时间中扣除5小时30分钟 扣除时间的原因:将IST转换为UTC时区 我的最终输出应该是-HH:MM:SS:Milleseconds(例如:18:25:30:245635) 提前感谢。java.time 输出为: UTC时间:12:55:30.245635 我假设今天的日期。请检查此假设是否适合您。虽然亚洲/加尔各答的UTC偏移量最近没有太大变化,但其他时区每年更改两次其偏移量 我改变了你的时间格式,在秒和秒的分数之间有一个句号(点),而不是冒号。如果确实需要冒号,则需要Java 如何获取用户在EditText中输入的时间并从中扣除5小时30分钟?,java,android,android-studio,simpledateformat,android-timepicker,Java,Android,Android Studio,Simpledateformat,Android Timepicker,我有两个编辑文本供用户输入时间(24小时格式)。 如何从Edittext中获取这些时间,并从用户选择的时间中扣除5小时30分钟 扣除时间的原因:将IST转换为UTC时区 我的最终输出应该是-HH:MM:SS:Milleseconds(例如:18:25:30:245635) 提前感谢。java.time 输出为: UTC时间:12:55:30.245635 我假设今天的日期。请检查此假设是否适合您。虽然亚洲/加尔各答的UTC偏移量最近没有太大变化,但其他时区每年更改两次其偏移量 我改变了你的时间格
DateTimeFormatter
进行解析
问题:我可以在Android上使用java.time吗?
是的,java.time在较旧和较新的Android设备上运行良好。它至少需要Java6
- 在Java8和更高版本以及更新的Android设备上(API级别26),现代API是内置的
- 在Java6和Java7中,获取三个后端口,即现代类的后端口(三个十用于JSR310;参见底部的链接)
- 在(较旧的)Android上使用Android版本的ThreeTen Backport。它叫ThreeTenABP。并确保从带有子包的
导入日期和时间类org.threeten.bp
- 解释如何使用java.time
- ,其中首先描述了
java.time
- ,java.time的后端口到Java6和Java7(JSR-310为三十)
- ,Android版Three Ten Backport
- ,解释得非常透彻
ZoneId zone = ZoneId.of("Asia/Kolkata");
String timeString = "18:25:30.245635";
LocalTime time = LocalTime.parse(timeString);
LocalTime utcTime = LocalDate.now(zone) // Today
.atTime(time) // Today at the time in question
.atZone(zone) // Date and time in IST
.toOffsetDateTime() // Convert to OffsetDateTime for the next step
.withOffsetSameInstant(ZoneOffset.UTC) // Convert to UTC
.toLocalTime(); // Extract only the time of day
System.out.println("UTC time: " + utcTime);