There is no official terminology in testing. Usually, the context in which they are used in the document should help find out the exact meaning the author have in mind.
From my experience though, I would say:
- system acceptance testing is more about platforms, OS, browser type etc. It is about using the SUT in a close-to-reality set of environments that ressemble the one the SUT is going to be used in. The actual test effort might be to have a set of end2end tests that you will run in those difference environments.
- user acceptance testing focus more on the end-user experience. What you will check is that the user gets what he wants from the SUT, feature by feature. Here you will take a single platform/env and run many different smaller tests to check the feature one by one. You can do this by following test plans or with a more exploratory approach