有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获取用户在EditText中输入的时间并从中扣除5小时30分钟?

我有两个编辑文本供用户输入时间(24小时格式)。 我如何从Edittext中获取这些时间,并从用户选择的时间中扣除5小时30分钟

扣除时间的原因:将IST转换为UTC时区

我的最终输出应该是-HH:MM:SS:Milleseconds(例如18:25:30:245635)

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    爪哇。时间

        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);
    

    输出为:

    UTC time: 12:55:30.245635

    我假设今天是约会。请检查这个假设是否适合你。虽然亚洲/加尔各答的UTC偏移量最近没有太大变化,但其他时区每年更改两次其偏移量

    我改变了你的时间格式,在秒和秒的小数之间加了一个句号(点),而不是冒号。如果确实需要冒号,则需要DateTimeFormatter进行解析

    问题:我可以使用java吗。安卓上的时间

    是的,爪哇。时间在较旧和较新的安卓设备上运行良好。它只需要至少Java6

    • 在Java8和更高版本以及更新的Android设备(API级别26)上,现代API是内置的
    • 在Java6和Java7中,使用Three-Ten Backport,即现代类的Backport(Three-Ten代表JSR310;参见底部的链接)
    • 在(旧版)Android上,使用Android版的Three Ten Backport。它叫ThreeTenABP。并确保使用子包从org.threeten.bp导入日期和时间类

    链接