wallpapper icon indicating copy to clipboard operation
wallpapper copied to clipboard

Date parsing error

Open VictorPuga opened this issue 4 years ago • 6 comments

I am trying to generate a wallpaper using the "filename" "time" option, but when the JSONDecoder reads: "2021-02-17T13:00:00Z", I am getting the error: Date string does not match format expected by formatter. However, if the same date is 12 instead of 13 ("2021-02-17T12:00:00Z"), there is no problem.

VictorPuga avatar Feb 17 '21 20:02 VictorPuga

Im using v1.7.1

VictorPuga avatar Feb 17 '21 20:02 VictorPuga

Unfortunately I cannot reproduce that bug. I'm using below JSON and everything is working. Can you provide more information (full log, swift version, os version etc.)?

[
    {
        "fileName": "1.png",
        "isPrimary": true,
        "time": "2021-02-17T04:00:00Z"
    },
    {
        "fileName": "2.png",
        "time": "2021-02-17T05:00:00Z"
    },
    {
        "fileName": "3.png",
        "time": "2021-02-17T06:00:00Z"
    },
    {
        "fileName": "4.png",
        "time": "2021-02-17T07:00:00Z"
    },
    {
        "fileName": "5.png",
        "time": "2021-02-17T08:00:00Z"
    },
    {
        "fileName": "6.png",
        "time": "2021-02-17T10:00:00Z"
    },
    {
        "fileName": "7.png",
        "time": "2021-02-17T12:00:00Z"
    },
    {
        "fileName": "8.png",
        "time": "2021-02-17T13:00:00Z"
    },
    {
        "fileName": "8.png",
        "time": "2021-02-17T15:00:00Z"
    },
    {
        "fileName": "9.png",
        "time": "2021-02-17T16:00:00Z"
    },
    {
        "fileName": "10.png",
        "time": "2021-02-17T17:00:00Z"
    },
    {
        "fileName": "11.png",
        "time": "2021-02-17T18:00:00Z"
    },
    {
        "fileName": "12.png",
        "time": "2021-02-17T19:00:00Z"
    },
    {
        "fileName": "13.png",
        "time": "2021-02-17T20:00:00Z"
    },
    {
        "fileName": "14.png",
        "time": "2021-02-17T21:00:00Z"
    },
    {
        "fileName": "15.png",
        "time": "2021-02-17T22:00:00Z"
    },
    {
        "fileName": "16.png",
        "time": "2021-02-17T23:00:00Z"
    }
]

mczachurski avatar Feb 18 '21 07:02 mczachurski

Same issue with the JSON above. I will try to provide some information

  • OS: macOS 11.2.1 (M1 Mac)
  • Instalation: Homebrew
  • wallpapper version: 1.7.1
  • swiftc version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) Target: arm64-apple-darwin20.3.0
  • Log:
Reading JSON file: 'file:///Users/(...)/sample.json'...OK.
Decoding JSON file...Error: Unexpected error occurs: 
dataCorrupted(Swift.DecodingError.Context(codingPath: [_JSONKey(stringValue: "Index 7", intValue: 7), 
CodingKeys(stringValue: "time", intValue: nil)], debugDescription: "Date string does not match format 
expected by formatter.", underlyingError: nil))
  • JSON file: example from above

VictorPuga avatar Feb 18 '21 18:02 VictorPuga

I have got exactly the same problem (same error log).

y-neck avatar Jul 23 '21 16:07 y-neck

I had the same issue, apparently the parser breaks when you set the time format to 12-Hour in System Preferences. As a workaround try enabling the 24-Hour format temporarily while running the command.

Screen Shot 2021-10-11 at 8 04 46 p m

eduarbo avatar Oct 12 '21 01:10 eduarbo

I solved this issue by changing line 40 of Program.swift to:

formatter.dateFormat = "hh:mm a"

and then used the following in my JSON:

[
    {
        "fileName": "light.jpg",
        "isPrimary": true,
        "isForLight": true,
        "time": "08:30 AM"
    },
    {
        "fileName": "dark.jpg",
        "isForDark": true,
        "time": "06:00 PM"
    }
]

This doesn't fundamentally fix the issue though, this just made it work with 12h formatted time. In case anyone is interested in a more permanent fix to the issue. This will mean making the change yourself and compiling the code but thats simple enough. Instructions are in the readme.

patrickhoette avatar Nov 16 '22 20:11 patrickhoette