How do you expect that we use Windows API functions in VBScript?
Sure, this isn't possible directly. In case the conversion routines are needed, we can discuss and implement them as MM scripting (COM) functions.
My main question is: why didn't you keep the local time in the PlayDate field for the backward compatibility and with the new Offset field you could calculate UTC time?
Well, we always try to make the best decision and definitely don't cause troubles to our scripters on purpose. There are some drawbacks to your suggestion, for example adding any new field to Songs table increases memory requirements and thus also possibly decreases speed of MM (note that this isn't the case of Played table). There really were reasons why we implemented it the way it is.
why the Songs table don't contain UTCOffset for each date field? How can we know the local time when some file is added to the library?
What you ask for here is a 'nice to have' feature. While I agree that it might be nice to have it, we simply haven't implemented it in MM (partly for reasons given in the paragraph above). So, if you take for granted that we didn't want to introduce Offset for each date field, than there are only two options: to store UTC time
and calculate local one, or to store the local one and calculate UTC. And we chose the former option in MM 4.0, since it has some advantages for us.