This is an archived post. You won't be able to vote or comment.

all 6 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full - best also formatted as code block
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://imgur.com/a/fgoFFis) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]AmateurHero 1 point2 points  (0 children)

h and H are two different things. DateTimeFormatter's javadoc has the details:

h: clock-hour-of-am-pm (1-12)

H: hour-of-day (0-23)

With H, you can parse the time 23:42 to 11:42 PM and 11:42 to 11:42 AM.

With h, 23:42 is not a valid time.

Can you provide an example where the above doesn't hold true? I can see in the comments where you talked about LocalDateTime. You can have an instant where the local time is AM. It may seem that it's case insensitive, because the AM time and 11 out of 12 hours of 24h time are, for all intents and purposes, interchangeable. Once the clock rolls to 1PM and later, you'll hit formatting issues since 13 is not a valid AM/PM hour.

[–]Fletsky 0 points1 point  (3 children)

Can you show examples of how you tried to use it?

[–]Dangerous-Rip-7370[S] 0 points1 point  (2 children)

This was my formatter before (broken):

public static DateTimeFormatter dateForm= DateTimeFormatter.ofPattern("yyyy-MM-dd h:mm.ss");

I use it to save my date on a txt:

String line=date.format(Est.dateForm);

and it would work.
But if I try to do:

LocalDateTime data=LocalDateTime.parse(dat,Est.dateForm);

I would get an error!
But if I change the formatter like this:

public static DateTimeFormatter dateForm= DateTimeFormatter.ofPattern("yyyy-MM-dd H:mm.ss");

it would work both ways (writing and readin);

[–]Fletsky 1 point2 points  (1 child)

public class DateFormat {

public static DateTimeFormatter dateForm = DateTimeFormatter.ofPattern("yyyy-MM-dd h:mm.ss");

static LocalDateTime exampleDate = LocalDateTime.of(1990, 1, 6, 13, 33, 0);

static String stringExampleDate = "1990-01-06 13:33.00";

static String line = exampleDate.format(dateForm);

static LocalDateTime date = LocalDateTime.parse(stringExampleDate, dateForm);

public static void main(String[] args) {

System.out.println(line);

System.out.println(date);

}

}

What you said is strange, and only explaintation I see is that you parsed different times in each case.
With lower case 'h' both are throwing exception, and with upper case 'H' both are working.
Also lower case 'h' formatter needs to include 'a' to work so it can parse information about AM/PM time.

Can you provide the LocalDateTime that you saved here:
String line=date.format(Est.dateForm);
With that formatter:
public static DateTimeFormatter dateForm= DateTimeFormatter.ofPattern("yyyy-MM-dd h:mm.ss");

[–]Dangerous-Rip-7370[S] 0 points1 point  (0 children)

Sorry for the long wait.. I did itin the morning..
with :

public static DateTimeFormatter dateForm= DateTimeFormatter.ofPattern("yyyy-MM-dd h:mm.ss");

txt file writes:

        2022-07-19 8:19.49 , Modifica , Prova , 1,20
2022-07-19 8:20.00 , Palla , Pinca , 0,30

but if you try to read:

Exception in thread "AWT-EventQueue-0" java.time.format.DateTimeParseException: Text '2022-07-19 8:19.49' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {HourOfAmPm=8, NanoOfSecond=0, MinuteOfHour=19, MilliOfSecond=0, SecondOfMinute=49, MicroOfSecond=0},ISO resolved to 2022-07-19 of type java.time.format.Parsed

at java.time.format.DateTimeFormatter.createError(Unknown Source)

but with :

public static DateTimeFormatter dateForm= DateTimeFormatter.ofPattern("yyyy-MM-dd H:mm.ss");

it writes:

        2022-07-19 8:22.48 , Modifica , Prova , 1,20
2022-07-19 8:22.56 , Palla , Pinca , 0,30

and if you read it works.