I have exactly the same problem and finally solved it after 3 hrs of tearing my hair

Jcomments is adding the time offset amount to the present time, instead of using the DIFFERENCE between server time and Joomla Time Zone Setting.
My server is at GMT +8 (confirm with your host if you're not sure if it's set correctly), Joomla config I set at at +8 too. Thus joomla will use calculate the difference : ie 8 - 8 = 0, and will use this number '0' and thus your articles has the correct time/date.
However, there are some component extensions which is using the wrong offset. Instead of using the Difference, it is adding the time zone setting of +8 to the sever time, and the result is thus 8 hrs more than the correct time.
I make some changes to 2 files and Presto!, time is correct now. Note : I retained the correct Time Zone setting in J! Config.
Disclaimer : I am not even considered a php novice, not even a beginner .. just having some luck here and I'm not sure if this will cause any other conflicts somewhere else ..
components\com_jcomments\jcomments.class.php
Find this :
$comment_date = date('Y-m-d H:i:s', time() + $mainframe->getCfg('offset') * 60 * 60);
Replace with :
$comment_date = date('Y-m-d H:i:s');
components\com_jcomments\jcomments.ajax.php
Find this :
$comment->date = date('Y-m-d H:i:s', time() + $mainframe->getCfg('offset') * 60 * 60);
Replace with :
$comment->date = date('Y-m-d H:i:s');