The reason that time on the DNS-323 is wrong is because it is being handled fundamentally wrong. Also most anything you image to do wrong with time the DNS-323 does it.
First off the way time settings on a Unix/Linux box are suppose to be done is that what is set in the /etc/TZ file is the name of the timezone, which is then looked up in the /usr/share/timezone database to find the exact rules of when to have daylight saving time or not. Problem is there is no /usr/share/timezone database on the DNS-323, so they resort to a syntax like: GMT+8. The problem with this is that it relies on the rule compiled into the OS, but they the rules can change and have just recently (a couple years ago for lots of parts of the world). So the DNS-323 changes to/from daylight saving time on the wrong dates/time.
The people at D-Link figured they will put in the date boxes for which date you should change on. There is a few problems with this, but the main problem is that is not what the rules of daylight saving time says. It isn't a date, it is stated as the first Sunday in X month and ending in the last Sunday of Y month. So if you set a date that is correct for this year you are guaranteed to be wrong for next year.
The other thing that could be wrong is the time of day to change. Most use 2 am, but it doesn't have to be.
Some might think that turning on the NTP Server that it would fix the problem. Not so. The purpose of the NTP server is to go out to the server and ask it the time and set the system time using it, but this was meant to correct being off by a few seconds (to correct for drifting clocks, which the DNS-323 has). If your time is off by an hour, the method it uses to sync would take days, but most likely actually it will just give up because it is to far off. It uses this slow correction because changing the time around quickly can confuse programs that depending on reading the time and doing something. Another thing to realize is that the NTP servers can be on the other side of the world so they don't know what timezone or if you are suppose to be in daylight time or not. It is up to the computer to be setup correctly to know these things. The NTP always just reports GMT with no daylight saving time.
Luckily there is an extended format for the entry in /etc/TZ that allows you to tell the system the correct rules.
In the case of US Pacific time that entry is:
PST8PDT,M3.2.0,M11.1.0
This is read. PST (abbreviation for Pacific Standard Time), 8 the number of hours from GMT, which can be 0 or negative, I know of no syntax for those weird countries that choose to have a 1/2 hour timezone, PDT (abbreviation for Pacific Daylight Time), the "M" entries give the starting/ending month.week.day.
Month is what you expect. January is 1, February is 2, ... So the first month in mine is March.
Next comes the week. This is week 1, week 2, ... (up to 5 since you can have a 5th week in a month). So for my first entry has it changing on the second week in March. The last is the day. The days are Sunday which is 0, Monday 1, ... So my entry is on the Sunday of the second week of March change. So the ending date reads On the Sunday of the first week November change back. There is also a format for the time of day to change, the default is 2 am, which the US uses so I didn't include it, but you can see it used below in the BST example.
What is it for BST? This timezone changes at 1 am, and time would be given with the /1
I grabbed the following rules from this link:
http://wwp.britishsummertime.co.uk/
* Starts: Last Sunday in March
* End: Last Sunday in October
* Time: 1.00 am (01:00) Greenwich Mean Time (GMT)
BST0BDT,M3.5.0/1,M10.5.0/1
NOTES:
* I don't live in BST timezone so this example is just going by the rules not my personal experience that it changes when people expect.
* But the for my timezone listed above (Pacific) I have lived with this setting for about 2 1/2 years and my time is always correct.
* I notice that the DNS-323 will not allow you to set the "Daylight Savings" flag without filling in the dates. Well the setting in the /etc/TZ is doing overrides this and even the first setting that picks the timezone, so it doesn't matter what it is set to. You do want to set the timezone right just so on the DNS-323 GUI is shows it right.
* If you change the timezone/Daylight/Dates it will override what is in the TZ file until you reboot and the fun_plug script changes it back.
* This link has a good explanation of the /etc/TZ format: http://www.gnu.org/s/libc/manual/html_node/TZ-Variable.html
* I have had problems with the built in NTP server not syncing some times, and have switched to running it through the ntpd.sh script in the ffp scripts. That allows me to tweak it for starting it in "burst" mode, using backup servers, and retrying on errors. But this is only good information if you are using the ffp fun_plug scripts.