Estoy buscando la capacidad de describir plantillas de formato (por ejemplo, utilizadas en java.util.Formatter ) para fechas (como java.text.SimpleDateFormat ) y números (como java.text.DecimalFormat ) que podrían usarse de forma transparente para formatear valores tanto en el lado del backend (jvm) y en el lado del navegador (js).
Esperaba que Kotlin pudiera proporcionar esta función, pero mi investigación se detuvo en solicitudes de funciones como https://youtrack.jetbrains.com/issue/KT-21644 . Entonces, como veo, no puedo tener algo listo para usar con la versión actual de Kotlin 1.5.31.
Entonces, mi pregunta es sobre algunos posibles estándares de plantilla de formato o pueden ser bibliotecas externas que pueden ayudarme a formatear valores de números y fechas en un solo enfoque en el backend y el frontend. ¿A qué debo prestar atención para obtener un motor de plantilla de formato único?
Para el formato de fecha, tal vez https://github.com/Kotlin/kotlinx-datetime podría ayudar.
Por el momento, probablemente no haya una solución completa para su problema (¿quizás podría proporcionar más detalles sobre lo que está tratando de hacer? ¿Formato de fecha y formato decimal o una forma común de formatear?), una cosa que podría hacer es:
typealiases esa manera, prácticamente obtiene el efecto de redefinir la implementación real para js)Aquí hay un ejemplo de cómo se hace eso para Android e iOS . Alternativamente, este blog podría ofrecer algo de inspiración para la parte typealias: https://nrobir.medium.com/uploading-images-in-kotlin-multiplatform-ecf87e866505
Estoy probando ahora en nuestros proyectos comerciales la biblioteca multiplataforma similar a Java.format/sprintf que escribí para que funcione de la misma manera en JS, nativo y JVM. Admite JS Date(), multiplataforma lotlinx.datetime y la mayoría de los formatos nativos de fecha y hora en JVM, además del formato de cadena/número. De nada: https://github.com/sergeych/mp_stools .
Tiene un conjunto casi completo de formatos %t* para el procesamiento de fecha/hora y podría agregarse como una dependencia (también MP).