Java 如何在Android中转换日期和时间

Java 如何在Android中转换日期和时间,java,android,date,android-calendar,Java,Android,Date,Android Calendar,在我的应用程序中,我想从服务器获取一些数据,我应该转换日期和时间 我从服务器收到的日期和时间格式为“2020-04-08 13:11:14”。 我想立即从我的设备中获取日期和时间,并用上述日期(结束日期)计算,如果此时间小于24小时,我应该显示,例如15小时后,但如果此时间大于24小时,我应该显示2天后 但我不知道该怎么做? 你能帮我发送代码或给我发送其他教程吗 我搜索了那个,但什么也没找到。试试使用这个库,或者你可以看到这个 此外,如果您可以选择,将UTC时间从/传递到服务器是一个好习惯,这将

在我的应用程序中,我想从服务器获取一些数据,我应该转换日期和时间
我从服务器收到的日期和时间格式为“2020-04-08 13:11:14”。

我想立即从我的设备中获取日期和时间,并用上述日期(结束日期)计算,如果此时间小于24小时,我应该显示,例如15小时后,但如果此时间大于24小时,我应该显示2天后

但我不知道该怎么做?
你能帮我发送代码或给我发送其他教程吗
我搜索了那个,但什么也没找到。

试试使用这个库,或者你可以看到这个

此外,如果您可以选择,将UTC时间从/传递到服务器是一个好习惯,这将避免一些本地化和时区问题。

尝试使用该库,或者您可以看到这一点

此外,如果您可以选择,将UTC时间从/传递到服务器是一个好习惯,这样可以避免一些本地化和时区问题。

java.time 现代方法使用java.time类

将输入字符串解析为一个字符串

解析,用“<代码> t>代码>替换中间的空间,以符合标准。

String input = "2020-04-08 13:11:14".replace( " " , "T" ) ;
LocalDateTime ldt = LocalDateTime.parse( input ) ;
您的输入缺少任何时区或UTC偏移的指示器。所以我们不知道这是日本东京的下午1点,法国图卢兹的下午1点,还是美国俄亥俄州托莱多的下午1点。因此,您无法可靠地将其与当前日期和时间进行比较

如果你想假定这个字符串是用来告诉你所在时区的时间的,那么就指定一个时区来获取时间

捕捉同一区域中的当前时刻

ZonedDateTime now = ZonedDateTime.now( z ) ;
24小时后计算

ZonedDateTime twentyFourHoursFuture = now.plusHours( 24 ) ;
比较一下

boolean within24Hours = then.isBefore( twentyFourHoursFuture ) ;
使用类确定经过的时间

如果要信任JVM的当前默认时区,请调用
ZoneId.systemDefault
。请注意,在应用程序执行期间,其他Java代码可能会更改此默认值

ZoneId z = ZoneId.systemDefault() ;

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

该项目现已启动,建议迁移到类

您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*

从哪里获得java.time类

  • 、和更高版本-标准Java API的一部分,带有捆绑实现。
    • Java9添加了一些次要功能和修复
    • 大多数java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类
    • 对于早期的Android(java.time 现代方法使用java.time类

      将输入字符串解析为一个字符串

      解析,用“<代码> t>代码>替换中间的空间,以符合标准。

      String input = "2020-04-08 13:11:14".replace( " " , "T" ) ;
      LocalDateTime ldt = LocalDateTime.parse( input ) ;
      
      您的输入缺少任何时区或UTC偏移的指示器。因此,我们不知道这是指日本东京下午1点、法国图卢兹下午1点还是美国俄亥俄州托莱多下午1点。因此,您无法可靠地将其与当前日期和时间进行比较

      如果你想假定这个字符串是用来告诉你所在时区的时间的,那么就指定一个时区来获取时间

      捕捉同一区域中的当前时刻

      ZonedDateTime now = ZonedDateTime.now( z ) ;
      
      24小时后计算

      ZonedDateTime twentyFourHoursFuture = now.plusHours( 24 ) ;
      
      比较一下

      boolean within24Hours = then.isBefore( twentyFourHoursFuture ) ;
      
      使用类确定经过的时间

      如果要信任JVM的当前默认时区,请调用
      ZoneId.systemDefault
      。请注意,在应用程序执行期间,其他Java代码可能会更改此默认时区

      ZoneId z = ZoneId.systemDefault() ;
      

      关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,如,&

      要了解更多信息,请参阅.和搜索堆栈溢出以获取许多示例和解释。规范为

      该项目现已启动,建议迁移到类

      您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
      java.sql.*
      classes

      从哪里获得java.time类

      • 、和更高版本-标准Java API的一部分,带有捆绑实现。
        • Java9添加了一些次要功能和修复
        • 大多数java.time功能都在中向后移植到Java6和Java7
        • 更高版本的Android捆绑包实现了java.time类

        • 对于早期的Android(谢谢,但你能给我发代码吗?因为我是业余爱好者,真的需要你的帮助。请亲爱的谢谢,但你能给我发代码吗?因为我是业余爱好者,真的需要你的帮助。请亲爱的你的搜索结果是什么?你在问之前搜索过,对吗?你的搜索结果是什么?你在问之前搜索过,对吗?