有 Java 编程相关的问题?

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

在java安卓studio中格式化sqldatetime

如何使用java在安卓 studio中格式化此日期时间表单SQL 2019-02-18T06:30:38.9933333至19年2月18日上午6:30

我已经尝试过Simpledatetime,但什么都没发生

String startDate="2019-02-18T06:30:38.9933333"; // Input String
        SimpleDateFormat sdf1 = new SimpleDateFormat("MM-dd-yyyy h:mm tt"); 

        java.util.Date date = sdf1.parse(startDate); 
        java.sql.Date sqlStartDate = new java.sql.Date(date.getTime());

我需要帮助。。谢谢你


共 (3) 个答案

  1. # 1 楼答案

    爪哇。时间、3TENABP和内置的本地化格式

        DateTimeFormatter formatter
                = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT)
                        .withLocale(Locale.US);
    
        String startDate = "2019-02-18T06:30:38.9933333"; // Input String
        LocalDateTime dateTime = LocalDateTime.parse(startDate);
        System.out.println(dateTime.format(formatter));
    

    输出:

    2/18/19 6:30 AM

    比上述方法更好的是,从数据库中获取一个LocalDateTime,或者如果这还不可能,则获取一个Timestamp,您可以这样转换:

        LocalDateTime dateTime = DateTimeUtils.toLocalDateTime(timestampFromDatabase);
    

    或者,如果使用Java 8或更高版本:

        LocalDateTime dateTime = timestampFromDatabase.toLocalDateTime();
    

    格式与以前一样

    通常,Java比您更了解特定受众的最佳格式。使用内置格式还可以避免编写格式模式字符串这一容易出错的任务

    在第一个代码片段中,我利用了一个事实,即您的输入字符串符合ISO 8601,这是java使用的国际标准格式。时间类将解析(并打印)作为其默认值,也就是说,不使用任何显式格式化程序

    SimpleDateFormatjava.util.Datejava.sql.Date的设计都很糟糕,而且早已过时。相反,我使用java。时间,现代Java日期和时间API

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

    是的,java。时间在较旧和较新的Android设备上运行良好。它至少需要Java6

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

    链接

  2. # 2 楼答案

    如果您使用的是java8或更高版本,那么您可能正在使用java.time.LocalDateTime

    String startDate = "2019-02-18T06:30:38.9933333"; // Input String
    LocalDateTime localDateTime = LocalDateTime.parse(startDate);