That is; I'm using GetConversation().Participants to figure out how long a conversation has been waiting for an agent to connect - but without knowing the server time the timestamp's I'm getting are pretty useless
There is no such thing as "server time" in purecloud. There is an API endpoint to retrieve the API server's current timestamp, though it shouldn't skew from a public time server by much. The authenticated endpoint is https://api.mypurecloud.com/api/v2/date. Timestamps are in ISO-8601 format and include a timezone. Generally, they're sent in UTC (the Z timezone designation).
I had an issue with a system clock out of sync, and was wondering if there was a way for me to get the server's time so that my software internally could have a known diff to the purecloud systems, giving me some extra confidence that the data it produces is somewhat accurate
Buf if there is no direct method for this, I'll just have to assume that the IT dept's in both ends (purecloud and my client) do in fact maintain their servers properly
Yes, PureCloud accounts for clock skew when it logs timestamps. You can assume all timestamps to be correct. You will, however, need to account for clock skew on your end when comparing PureCloud timestamps with timestamps from another source (like the local machine's time).
I was just made aware of a currently undocumented API endpoint that allows you to get the current time from the API server. You can make an authenticated request to https://api.mypurecloud.com/api/v2/date. This should generally have very little skew from a public time server, but you can choose to calculate your skew from PureCloud if you wish (this is what the UI does).