Comments (3)
Fair. We should either provide a better way to do it or at least make this code behave optimally (which is doable).
Some arguments against adding OPTIONAL_ZERO
:
- If you have several fields, the verbosity is amortized and not as bad:
alternativeParsing({
year(Padding.NONE); char('-'); monthNumber(Padding.NONE); char('-'); dayOfMonth(Padding.NONE)
}) {
year(); char('-'); monthNumber(); char('-'); dayOfMonth()
}
- When we researched how people use datetime formatting, most of the formats we looked at were used for either parsing or formatting, but not both. For people only using formats for formatting,
Padding.OPTIONAL_ZERO
is equivalent toPadding.ZERO
, and for people only using parsing, it's equivalent toPadding.NONE
. So, both classes of people get one more meaningless choice in the API. For formats that are used for both parsing and formatting, it may still help to clearly indicate the format that will be used for formatting, without having to sift through parsing-specific behavior, andalternativeParsing
does that.
Let's collect more feedback and see how widespread the problem is. Everyone, please don't hesitate to share the ugly code that you're forced to write. Maybe we'll help you improve it, or maybe we'll see that OPTIONAL_ZERO
is an absolute necessity.
from kotlinx-datetime.
Will it parse something like 2024-3-07
? I'm not sure if Padding.NONE allows having padding.
But I agree, that reusing for both formatting and parsing is not a common case.
from kotlinx-datetime.
Will it parse something like 2024-3-07?
Yes.
I'm not sure if Padding.NONE allows having padding.
It does. We'll include this in the documentation, this information is missing.
from kotlinx-datetime.
Related Issues (20)
- java.time.Instant.parse and kotlinx.datetime.Instant.parse behave differently HOT 1
- Analyze the number of trailing zeros for fractions of seconds HOT 1
- JS browser app fails to load due to missing js-joda module HOT 3
- Is there a recommendation for how to use the various type with hibernate in a Spring Boot Project? HOT 1
- Consider removing `String.toLocalDate()`, `String.toInstant()`, etc. HOT 1
- Not compliant with ISO-8601 HOT 1
- GMT HOT 1
- API reference improvements HOT 1
- Consider adding parsing and formatting support for `kotlin.time.Duration`
- Provide custom formats for `DateTimePeriod`
- Introduce serializers corresponding to custom formats HOT 3
- Fix the ISO serializers omitting seconds when zero and emitting fractional parts in groups of three signs HOT 4
- Locale-aware formatting (but not parsing)
- Publish the design documents for datetime formats
- Update Kotlin version HOT 3
- ABI incompatible change on `kotlinx.datetime/LocalDateTime.Companion.parse` function in 0.6.0 release HOT 2
- Failed requirement on strange time zone HOT 1
- Potential improvements and input preservation in parsing and formatting error messages HOT 1
- Feature: building instant from DateTimeComponents HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kotlinx-datetime.