【问题标题】:Kotlin js/jvm format templatesKotlin js/jvm 格式模板
【发布时间】:2022-01-31 00:15:07
【问题描述】:

我正在寻找一种描述格式模板(例如在java.util.Formatter 中使用)的能力,用于描述日期(如java.text.SimpleDateFormat)和数字(如java.text.DecimalFormat),可以透明地用于在后端格式化值(jvm) 端和浏览器 (js) 端。

我希望 kotlin 可以提供这个功能,但是我的研究停留在像 https://youtrack.jetbrains.com/issue/KT-21644 这样的功能请求上。因此,正如我所见,我无法准备好与当前 kotlin 版本 1.5.31 一起使用的东西。

所以我的问题是关于一些可能的格式模板标准,或者可能是外部库,它们可以帮助我在后端和前端以单一方法格式化数字和日期值。 获取单格式模板引擎可能需要注意什么?

【问题讨论】:

    标签: javascript kotlin kotlin-multiplatform kotlin-js


    【解决方案1】:

    对于日期格式,https://github.com/Kotlin/kotlinx-datetime 可能会有所帮助。

    目前,您的问题可能没有完整的解决方案(您能否提供更多关于您正在尝试做什么的详细信息?日期格式和十进制格式或一种常见的格式设置方式?),您可以做的一件事是:

    • 以非 jvm 方式在您的公共代码中重新定义 Formatter 作为预期声明。
    • 为 js 和 jvm 定义实际实现(在 jvm 方面,您可能会使用 typealiases 这样您实际上可以获得重新定义 js 实际实现的效果)

    这是一个关于如何为 Android 和 iOS 完成此操作的示例。或者,这个博客可以为 typealias 部分提供一些灵感:https://nrobir.medium.com/uploading-images-in-kotlin-multiplatform-ecf87e866505

    【讨论】:

      【解决方案2】:

      我现在正在我们的商业项目中测试我编写的类似Java.format/sprintf 的多平台库,以使其在 JS、本机和 JVM 中运行相同。除了字符串/数字格式外,它还支持 JS Date()、multimplatform lotlinx.datetime 和 JVM 中的大多数本机日期时间格式。欢迎您:https://github.com/sergeych/mp_stools。

      它有一套几乎完整的 %t* 格式用于日期/时间处理,并且可以作为依赖项添加(也可以是 MP)。

      【讨论】:

        猜你喜欢
        • 2021-01-05
        • 2014-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-04
        • 1970-01-01
        相关资源
        最近更新 更多