Using only the code you posted above, I get the following output:
Which is as expected.
So the labels "2016-07-01\n01:00:00" (no three zeros as in your case), "2017-01-01\n01:00:00", and to the right "2017-07-01\n01:00:00".
The label all the way to the right might be clipped if the font is a slightly different size/geometry because it's very close to the widget border. When tick labels intersect with the widget border, they become invisible, this is intentional behaviour to prevent half-visible (and thus potentially ambiguous) labeling. The label at the tick on the very left of the x axis is made invisible for exactly this reason, too.
Note the difference in the time (19 in your case, 01 in my case) is due to time zone differences between our systems.
Another hint: Instead of entering the number of seconds as a double, you could use
QCPAxisTickerDateTime::dateTimeToKey(QDate(2016, 1, 1));
which is much nicer to read and edit.
If you want more labels, read the documentation of