gpt4 book ai didi

android - 如何格式化 kotlinx-datetime LocalDateTime?

转载 作者:行者123 更新时间:2023-12-04 23:44:02 24 4
gpt4 key购买 nike

我正在使用 Java 8 的 LocalDatetime 转换一些代码使用 kotlinx-datetime 中的版本而且我找不到任何格式化方法。具体来说,我正在替换 FormatStyle.MEDIUM .它们不存在并且我需要编写格式吗?
这适用于 Android 应用程序。是否有我可以使用的 Android 特定库?或者我可以使用 Java 8 之前的方法来保持对旧版本 Android 的支持吗?
编辑(我的解决方案基于 Arvind 的回答) :

fun Instant.toDateTimeString(formatStyle: FormatStyle = FormatStyle.MEDIUM): String {
val localDatetime = toLocalDateTime(TimeZone.currentSystemDefault())
val formatter = DateTimeFormatter.ofLocalizedDateTime(formatStyle)
return formatter.format(localDatetime.toJavaLocalDateTime())
}

最佳答案

根据 documentation ,在JVM中,日期/时间类型的实现,如Instant , LocalDateTime , TimeZone等等,依赖java.time API。它还原生支持 ThreeTen backport project使用它可以向后移植大部分 java.time Java 6 和 7 的功能。检查 How to use ThreeTenABP in Android Project学习如何设置它。
如果您想替换 OOTB(开箱即用)格式,例如 FormatStyle.MEDIUM ,您始终可以使用 DateTimeFormatter 定义自定义格式例如

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;

public class Main {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM, FormatStyle.MEDIUM);

// Custom equivalent format with a fixed Locale
DateTimeFormatter dtfCustom = DateTimeFormatter.ofPattern("d MMM uuuu, HH:mm:ss", Locale.ROOT);

LocalDateTime ldt = LocalDateTime.now();

System.out.println(ldt.format(dtf));
System.out.println(ldt.format(dtfCustom));
}
}
输出:
6 Nov 2021, 12:18:26
6 Nov 2021, 12:18:26
ONLINE DEMO
了解更多关于 modern Date-Time API * 来自 Trail: Date Time .

* 如果您正在为一个 Android 项目工作并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaring .请注意,Android 8.0 Oreo 已经提供了 support for java.time .查看 this answerthis answer学习如何使用 java.time带有 JDBC 的 API。

关于android - 如何格式化 kotlinx-datetime LocalDateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69854471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com