Use cmake TIMESTAMP function

because it is not only platform independent
but also allows to override the build date
This helps to make tigervnc builds reproducible

See https://reproducible-builds.org/ for why this is good

Also adds UTC flag, to be independent of timezone.
Also changes JAVA_DATE format to ISO-8601 date format.

Requires cmake-2.8.11+ from 2013
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4fb3360..8a89d45 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@
 # Setup
 #
 
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.11)
 if(POLICY CMP0022)
   cmake_policy(SET CMP0022 OLD)
 endif()
@@ -43,9 +43,7 @@
 endif()
 
 if(NOT BUILD_TIMESTAMP)
-  set(BUILD_TIMESTAMP "")
-  execute_process(COMMAND "date" "+%Y-%m-%d %H:%M" OUTPUT_VARIABLE BUILD_TIMESTAMP)
-  string(REGEX REPLACE "\n" "" BUILD_TIMESTAMP ${BUILD_TIMESTAMP})
+  STRING(TIMESTAMP BUILD_TIMESTAMP "%Y-%m-%d %H:%M" UTC)
 endif()
 
 # Default to optimised builds instead of debug ones. Our code has no bugs ;)