Merge branch 'github-main', remote branch 'origin' into jean-datetime-DateTime
Try to get TIMEZONE from environment; failing that, use local time

I'm using DateTime().timezone() to get local timezone.
That's convenient, but I want to get rid of DateTime.
So need a better way to get timezone.
Return date in local timezone
Just some formatting
Add note on timezone conversion of getLastModified
Merge branch 'github-main' of github.com:plomino/Plomino into jean-datetime-DateTime
Whitespace ...
Revert small regression

See https://github.com/plomino/Plomino/commit/b28cdb4f1e6933459787ba6ec8187a8acfbf864a#commitcomment-4362218
Whitespace
Use TIMEZONE and database date format consistently
Removed unused import
Merge pull request #447 from plomino/jean-datetime-DateTime

Use TIMEZONE and database date format consistently
Merge pull request #451 from plomino/jean-script_id-delimiter

Change script id delimiter so it's not an underscore
Log more helpfully
Merge branch 'github-main' of github.com:plomino/Plomino into github-main
Be more careful about JSON date serializing

In [1]: from Products.CMFPlomino.PlominoUtils import json_loads, json_dumps, Now
In [2]: json_loads(json_dumps(Now()))
Out[2]: DateTime('2013/10/21 19:26:48 GMT+7')
In [3]: json_dumps(Now())
Out[3]: '{"datetime": "2013-10-21T19:26:58+07:00", "__datetime__": true}'
In [4]: Now().ISO()
Out[4]: '2013-10-21T19:29:25+07:00'
Test date serialization
DateTime can take a datetime instance, and pays attention to its timezone
Fix StringToDate invocation

'%z' in the format spec is invalid. This was raising a ValueError,
which was being caught. Pass format=None, so dateutil.parser.parse
is called. This understand the format we have here.
Test against the instance timezone