You neither can rename a file to the proposed name - it contains several colons (
:) which are reserved (= forbidden) characters in the HFS+ file system - nor does
defaults write com.apple.screencapture ... allow a different date format.
One idea though is creating a launch agent to rename all files in a dedicated folder starting with "Screen Shot ...":
A very simple solution, assuming you restore the default naming convention for screenshots and replace user_name by your short name below, is then:
Create a file named "screencaprn" in e.g /usr/local/bin with the content:
mv /Users/user_name/Desktop/Screen\ Shot*.png /Users/user_name/Desktop/"`date "+%Y-%m-%d-%H.%M.%S"`.png"; $2>/dev/null
chmod +x /usr/local/bin/screencaprn
Then create a launch agent in ~/Library/LaunchAgents with the name "usr.screenshot.rename.plist" and the content:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
Then load the plist with:
launchctl load ~/Library/LaunchAgents/usr.screenshot.rename.plist
This works but has a delay of up to 10 seconds (thus changes the seconds and sometimes the minutes of the original named screenshot file e.g. Screen Shot 2016-09-03 at 03.24.02.png to 2016-09-03-03.24.05.png) and adds one com.apple.xpc.launchd (usr.screenshot.rename): Service only ran for X seconds. Pushing respawn out by Y seconds. line to the system log.