Giter Site home page Giter Site logo

Comments (3)

dkhalanskyjb avatar dkhalanskyjb commented on June 11, 2024

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 to Padding.ZERO, and for people only using parsing, it's equivalent to Padding.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, and alternativeParsing 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.

kunyavskiy avatar kunyavskiy commented on June 11, 2024

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.

dkhalanskyjb avatar dkhalanskyjb commented on June 11, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.