[Xiaomi Mi Max ROMs, Kernels, Recoveries, & Other D] oatcooky:
Spoke too soon because I got the 1970 bug again. It happens after a reboot, no matter if I set time manually or use network time.

The phone always starts at Feb 10, 1970, 0002 hours. Here's a logcat snippet when it changes back to the correct time:

02-10 02:05:45.678 4330 5749 W CheckinTask: Changing time from 3436545678 to 1490077819289
02-10 02:05:45.679 1137 4254 D AlarmManagerService: Setting time of day to sec=1490077819
03-21 14:30:19.290 1137 4254 W AlarmManagerService: Unable to set rtc to 1490077819: Invalid argument
03-21 14:30:19.295 1137 1137 D ConditionProviders.SCP: onReceive android.intent.action.TIME_SET
03-21 14:30:19.296 4272 4272 W Pbl : [TimeReceiver] Time changed
03-21 14:30:19.300 1137 2943 E QMI_FW : QCCI qmi_cci_xport_recv: txn not found. svc_id: 16
03-21 14:30:19.300 1137 2883 E LocSvc_LBSApiV02: E/virtual void lbs_core::LBSApiV02::timeInfoInject(long, int, int):1049]: Error : st = 2, ind.status = 0

Dmesg:

03-21 14:30:39.826 1137 4208 I ActivityManager: Start proc 7523:com.qualcomm.timeservice/1000 for broadcast com.qualcomm.timeservice/.TimeServiceBroadcastReceiver 03-21 14:30:39.826 4330 7522 I EventLogChimeraService: Aggregate from 3436544030 (log), 1490077704229 (data) 03-21 14:30:39.835 7380 7414 V JNIHelp : Registering com/google/android/gms/org/conscrypt/NativeCrypto's 242 native methods...
03-21 14:30:39.847 1137 4255 W DropBoxManagerService: Dropping: event_data (63 > 0 bytes)
03-21 14:30:39.862 7380 7414 D NetworkSecurityConfig: No Network Security Config specified, using platform default 03-21 14:30:39.867 7380 7414 I ProviderInstaller: Installed default security provider GmsCore_OpenSSL
03-21 14:30:39.889 7523 7523 I art : Starting a blocking GC AddRemoveAppImageSpace
03-21 14:30:39.889 7523 7523 W System : ClassLoader referenced unknown path: /system/app/TimeService/lib/arm64
03-21 14:30:39.951 7523 7523 D TimeService: Receivedandroid.intent.action.TIME_SET intent. Current Time is 1490077839951
03-21 14:30:39.951 7523 7523 D : TimeServiceNative: User Time to be set is 1490077839951
03-21 14:30:39.951 7523 7523 D QC-time-services: Lib:time_genoff_operation: pargs->base = 2
03-21 14:30:39.951 7523 7523 D QC-time-services: Lib:time_genoff_operation: pargs->operation = 0
03-21 14:30:39.951 7523 7523 D QC-time-services: Lib:time_genoff_operation: pargs->ts_val = 1490077839951 03-21 14:30:39.951 7523 7523 D QC-time-services: Lib:time_genoff_operation: Send to server passed!!
03-21 14:30:39.951 443 508 D QC-time-services: Daemon: Connection accepted:time_genoff
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:Received base = 2, unit = 1, operation = 0,value = 1490077839951
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:genoff_opr: Base = 2, val = 1490077839951, operation = 0
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:Value read from QTimer mseconds = 85161
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:Value read from RTC mseconds on boot = 3436501000
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:Delta read on boot mseconds = 3436480437
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:new time 1490077839951
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon: delta 1486641274353 genoff 1486641274353
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:genoff_persistent_update: Writing genoff = 1486641274353 to memory
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:eek:pening File: /persist/time/ats_2 /data/time/ats_2
03-21 14:30:39.952 443 7540 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff write operation
03-21 14:30:39.968 443 7540 D QC-time-services: Updating the TOD offset
03-21 14:30:39.969 443 7540 D QC-time-services: Daemon:genoff_persistent_update: Writing genoff = 1486641274353 to memory
03-21 14:30:39.969 443 7540 D QC-time-services: Daemon:eek:pening File: /persist/time/ats_1 /data/time/ats_1
03-21 14:30:39.969 443 7540 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff write operation 03-21 14:30:39.974 443 7540 E QC-time-services: Daemon:Update to modem bit set
03-21 14:30:39.974 443 7540 D QC-time-services: Daemon:genoff_send_modem: Sending data to MODEM !
03-21 14:30:39.974 443 7540 D QC-time-services: Daemon: Base = 2, Value being sent to MODEM = 1170676474353 03-21 14:30:39.974 7523 7523 E QC-time-services: Receive Passed == base = 2, unit = 1, operation = 0, result = 0
03-21 14:30:39.975 443 787 E QC-time-services: Daemon:tod_update_ind_cb: Got Update from modem msg_id 40
03-21 14:30:39.975 443 508 E QC-time-services: Daemon: Time-services: Waiting to acceptconnection

And best of all, looks like the hardware RTC clock doesn't work but the system time is fine. Here's what I get when running hwclock and trying to set it to follow system time:

hydrogen:/ # hwclock
Mon Feb 9 19:25:09 1970 0.000000 seconds
hydrogen:/ # date
Tue Mar 21 15:22:26 MYT 2017
hydrogen:/ # hwclock --systohc
hwclock: ioctl 4024700a: Invalid argument