this post was submitted on 01 Mar 2024
137 points (98.6% liked)

Rust

6121 readers
2 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

[email protected]

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 2 years ago
MODERATORS
137
submitted 9 months ago* (last edited 9 months ago) by snaggen to c/rust
 

TIL: Sweden had February 30 in 1712 https://en.wikipedia.org/wiki/1712_in_Sweden , so I decided to see how chrono handled that.

use chrono::TimeZone;
use chrono_tz::Europe::Stockholm;

fn main() {
    let feb30 =  Stockholm.ymd(1712,2,30);
    println!("Date: {:?}", feb30);
}
 target/debug/feb30
thread 'main' panicked at /home/snaggen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.34/src/offset/mod.rs:252:40:
No such local time
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Result (as expected): Not well! ๐Ÿ˜„

I also tested Java with

ZonedDateTime feb30 = ZonedDateTime.of(1712,2,30, 0,0,0,0, ZoneId.of("Europe/Stockholm"));

with simmilar result

java.time.DateTimeException: Invalid date 'FEBRUARY 30'

So, lets take a minute of silence for all the programmers of history related software, may the spagetti monster have mercy on their souls.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] snaggen 10 points 9 months ago* (last edited 9 months ago)

I think there are so much issues with historical dates, that it is probably not worth fixing it in general purpose libraries. Not only do you need to special case everything like this in relation to dates, but you would also need to keep track of all historical territories (like Prussia and such) and what was part of what. In this particular case, I think that the timezone Europe::Helsinki was part of Sweden and should be included (possibly some cities from current Poland). There is no need to add that kind of complexity to general purpose libraries, that should probably be in some special historical date / region library if needed.

Also, there was not really a concept of time zones before the railway, then the time was floating. The time was not the same in the whole country, because that was not a problem before people started to travel faster and in a way that needed time tables. So, that also fits poorly in a modern general purpose date/time library.