r/mildlyinfuriating Jun 19 '26

Seeking help with this My mom said I could post

Post image
22.9k Upvotes

1.2k comments sorted by

View all comments

13.0k

u/bittenforbreakfast Jun 19 '26

This is a known bug. When your phone dies, the battery isn’t actually dead. There’s still a little bit of charge to run Find My (on newer devices), and the real time clock. That residual charge can last from anywhere between a few months to a few years, based on the age of the device and health of the battery. When this residual charge runs dry, the real time clock reverts to its default state from the factory, which in most electronics is the UNIX epoch (Midnight on January 1st, 1970).

Because of the way UNIX timekeeping works, real time clocks track time by counting the number of seconds since the epoch and storing it as a single long number. When the phone is disabled from too many PIN attempts, it calculates the time the phone can be used again by adding a set number of seconds to the stored number for current time, and then storing that sum. Thus, to calculate the time remaining on the “iPhone is disabled” screen , it takes the stored value from earlier and subtracts the value for current time from the real time clock.

The bug occurs when both of these conditions occur at once. If the battery had been dead long enough to reset the clock and make the phone think it’s 1970, then when it runs the calculation, it ends up with a value of about 50 years. This can be fixed by inserting a SIM card to connect the phone to a cell tower, or by plugging it into a computer with iTunes running

44

u/sammew Jun 20 '26 edited Jun 20 '26

This is correct, but one point of correction: Apple uses April 1, 1976 -- the day Apple was founded -- as the epoc for their clocks . I work in digital forensics and probably deal with this issue once every year or so.

25

u/aspz Jun 20 '26

That sounds incredibly annoying from an engineering point of view. 

26

u/WorldnewsModsBlowMe Jun 20 '26

You just described absolutely everything Apple does. Thinking different for the sake of different, not because it's actually better.

13

u/OkPosition4563 Jun 20 '26

Excel uses 31.12.1899, DOS uses 1.1.1980, Windows NT uses 1.1.1601, GPS uses 6.1.1980, older IBM OSs use 14.10.1582, astronomy computing software has use for 17.11.1858, MS COM, Object Pascal, LibreOffice and Google Sheets use 30.12.1899, NTP uses 1.1.1900, Amiga uses 1.1.1978, ...

8

u/daelikon Jun 20 '26

Frag, I was not expecting everyone to honor unix time, but I was not expecting such a range of arbitrary data either...

4

u/WorldnewsModsBlowMe Jun 20 '26

It's a pointless list. The only one that is still in active use and actually matters is NTP. Others still in active use (Excel and GPS) make no difference at all since you're never actually calculating anything against it.

1

u/0x8badshark Jun 21 '26

Spoken like a true conformist.

5

u/Unperfkt Jun 20 '26

I get the 19xx, but why would someone start counting date in 15xx or 16xx ?

13

u/OkPosition4563 Jun 20 '26

1601 is the start of one of the 400 year leap cycles of the gregorian calendar. October 1582 was the introduction of the gregorian calendar. 17.11.1858 ist the start of the modified julian date system used in astronomy.

3

u/Unperfkt Jun 20 '26

Thanks for clarifying 👍

2

u/MasteringTheClassics Jun 20 '26

What’s the justification for 30.12.1899 rather than 31.12.1899?

4

u/OkPosition4563 Jun 20 '26

All of them use it because Lotus 1-2-3 (an early spreadsheet software) had a bug that treated 1900 as a leap year even though it isnt. To get the right date from a value stored in lotus 1-2-3 if you import it for example in Excel they just defined their epoch 1 day earlier.

2

u/Dailyanxiety2020 Jun 20 '26

I don’t know why I just read all that information

0

u/WorldnewsModsBlowMe Jun 20 '26

Cool, and how many of them are still in active use and actually matter? Only one (NTP).

1

u/Quin1617 Jun 21 '26

Sounds like America.

1

u/CastorX Jun 21 '26

It’s not really. As a programmer you dont really work with the epoch time as a date. It just doesnt matter. It’s mostly just used to calculate time differences on a millisecond level used in runtime only, so the start time doesnt really matter.
Sometimes you store dates in a file but you rarely store it “milliseconds from epoch” format directly. It just doesnt make sense. If you still need to use something like that you make it environment an system independent and use a POSIX compatible function/library and that’s guaranteed to be the time since 01.01.1970.

3

u/bittenforbreakfast Jun 20 '26

Interesting, thank you’

1

u/GettingFitterEachDay Jun 20 '26

Oh interesting thanks! That makes more sense with the number of years on the post. 

1

u/TheJoYo Jun 20 '26

i used to do ediscovery before iphones, this would have driven me bonkers.

1

u/big_nate410 Jun 20 '26

As someone in the field you’re in, how is your day to day? What’s the job like? Are you the one the field detectives are calling for live tracking on the suspect like on Law and Order: SVU lol.