[Xiaomi Mi Max ROMs, Kernels, Recoveries, & Other D] nijel8:
You should have something like this in logcat. That's how qualcomm time service keeps track of current time and reapplies it after boot. Not having similar logcat output will explain 1970 time:

03-01 19:03:20.043 20664 20664 I AlarmClock: AlarmInitReceiver android.intent.action.TIME_SET
03-01 19:03:20.152 22832 22832 D TimeService: Receivedandroid.intent.action.TIME_SET intent. Current Time is 1488413000152
03-01 19:03:20.152 22832 22832 D : TimeServiceNative: User Time to be set is 1488413000152
03-01 19:03:20.152 22832 22832 D QC-time-services: Lib:time_genoff_operation: pargs->base = 2
03-01 19:03:20.152 22832 22832 D QC-time-services: Lib:time_genoff_operation: pargs->operation = 0
03-01 19:03:20.153 22832 22832 D QC-time-services: Lib:time_genoff_operation: pargs->ts_val = 1488413000152
03-01 19:03:20.154 452 560 D QC-time-services: Daemon: Connection accepted:time_genoff
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon:Received base = 2, unit = 1, operation = 0,value = 1488413000152
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon:genoff_opr: Base = 2, val = 1488413000152, operation = 0
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon:Value read from QTimer mseconds = 86506673
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon:Value read from RTC mseconds on boot = 1488326507000
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon:Delta read on boot mseconds = 1488326485816
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon:new time 1488413000152
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon: delta 7663 genoff 7663
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon:genoff_persistent_update: Writing genoff = 7663 to memory
03-01 19:03:20.155 452 23322 D QC-time-services: Daemon:eek:pening File: /persist/time/ats_2 /data/time/ats_2
03-01 19:03:20.156 452 23322 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff write operation
03-01 19:03:20.156 22832 22832 D QC-time-services: Lib:time_genoff_operation: Send to server passed!!
03-01 19:03:20.159 452 23322 D QC-time-services: Updating the TOD offset
03-01 19:03:20.159 452 23322 D QC-time-services: Daemon:genoff_persistent_update: Writing genoff = 7663 to memory
03-01 19:03:20.159 452 23322 D QC-time-services: Daemon:eek:pening File: /persist/time/ats_1 /data/time/ats_1
03-01 19:03:20.159 452 23322 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff write operation
03-01 19:03:20.160 22693 23323 I EventLogChimeraService: Aggregate from 1488411109333 (log), 1488411109333 (data)
03-01 19:03:20.494 452 560 D QC-time-services: Daemon: Connection accepted:time_genoff
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:Received base = 12, unit = 1, operation = 0,value = 1488413000000
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:genoff_opr: Base = 12, val = 1488413000000, operation = 0
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:Value read from QTimer mseconds = 86506499
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:Value read from RTC mseconds on boot = 1488326507000
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:Delta read on boot mseconds = 1488326485816
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:new time 1488413000000
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon: delta 7685 genoff 7685
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:genoff_persistent_update: Writing genoff = 7685 to memory
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:eek:pening File: /persist/time/ats_12 /data/time/ats_12
03-01 19:03:20.495 452 23314 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff write operation
03-01 19:03:20.509 452 560 E QC-time-services: Daemon: Time-services: Waiting to acceptconnection
03-01 19:03:20.509 452 560 D QC-time-services: Daemon: Connection accepted:time_genoff
03-01 19:03:20.509 452 23315 D QC-time-services: Daemon:Received base = 13, unit = 1, operation = 0,value = 1488413000000
03-01 19:03:20.509 452 23315 D QC-time-services: Daemon:genoff_opr: Base = 13, val = 1488413000000, operation = 0
03-01 19:03:20.510 452 23315 D QC-time-services: Daemon:Value read from QTimer mseconds = 86506513
03-01 19:03:20.510 452 23315 D QC-time-services: Daemon:Value read from RTC mseconds on boot = 1488326507000
03-01 19:03:20.510 452 23315 D QC-time-services: Daemon:Delta read on boot mseconds = 1488326485816
03-01 19:03:20.510 452 23315 D QC-time-services: Daemon:new time 1488413000000
03-01 19:03:20.510 452 23315 D QC-time-services: Daemon: delta 7671 genoff 7671
03-01 19:03:20.510 452 23315 D QC-time-services: Daemon:genoff_persistent_update: Writing genoff = 7671 to memory
03-01 19:03:20.510 452 23315 D QC-time-services: Daemon:eek:pening File: /persist/time/ats_13 /data/time/ats_13
03-01 19:03:20.510 452 23315 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff write operation
03-01 19:03:20.513 452 560 E QC-time-services: Daemon: Time-services: Waiting to acceptconnection
03-01 19:03:20.162 22832 22832 E QC-time-services: Receive Passed == base = 2, unit = 1, operation = 0, result = 0

My guess is something wrong with your cellular network provider or something else is disturbing time service...

Reflashing firmware might help too.