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>代码>替换中间的空间,以符合标准。
您的输入缺少任何时区或UTC偏移的指示器。因此,我们不知道这是指日本东京下午1点、法国图卢兹下午1点还是美国俄亥俄州托莱多下午1点。因此,您无法可靠地将其与当前日期和时间进行比较 如果你想假定这个字符串是用来告诉你所在时区的时间的,那么就指定一个时区来获取时间 捕捉同一区域中的当前时刻String input = "2020-04-08 13:11:14".replace( " " , "T" ) ; LocalDateTime ldt = LocalDateTime.parse( input ) ;
24小时后计算ZonedDateTime now = ZonedDateTime.now( z ) ;
比较一下ZonedDateTime twentyFourHoursFuture = now.plusHours( 24 ) ;
使用类确定经过的时间 如果要信任JVM的当前默认时区,请调用boolean within24Hours = then.isBefore( twentyFourHoursFuture ) ;
。请注意,在应用程序执行期间,其他Java代码可能会更改此默认时区ZoneId.systemDefault
ZoneId z = ZoneId.systemDefault() ;
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,如,& 要了解更多信息,请参阅.和搜索堆栈溢出以获取许多示例和解释。规范为 该项目现已启动,建议迁移到类 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
classes 从哪里获得java.time类java.sql.*
- 、和更高版本-标准Java API的一部分,带有捆绑实现。
- Java9添加了一些次要功能和修复
- 及
- 大多数java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(谢谢,但你能给我发代码吗?因为我是业余爱好者,真的需要你的帮助。请亲爱的谢谢,但你能给我发代码吗?因为我是业余爱好者,真的需要你的帮助。请亲爱的你的搜索结果是什么?你在问之前搜索过,对吗?你的搜索结果是什么?你在问之前搜索过,对吗?
- 、和更高版本-标准Java API的一部分,带有捆绑实现。