ISO 8601 for Programmers
April 7th 2016I came across a nice article on ISO 8601 and thought I would share it here and expand on it some.

- date: %Y-%m-%dor%Ffor recent implementations (example: 2013-12-31)
- time: %H:%M:%Sor%Tfor recent implementations (example: 10:10:10)
However time should always include a timezone.  In the simple case, where the time is in UTC you can simply add a Z to the end of the time %TZ.
If you want to represent a particular point in time you can use %FT%T%z. 
On a modern posix system you should see output similar to 2016-04-07T04:44:30+0200.
In Ruby you can execute puts Time.now().strftime("%FT%T%z").
In C/C++ you can compile:
#include <time.h>
#include <stdio.h>
int
main()
{
  time_t t;
  struct tm *tmp;
  char buffer[51];
  t = time(NULL);
  tmp = localtime(&t);
  strftime(buffer, sizeof(buffer), "%FT%T%z", tmp);
  printf("%s\n", buffer);
  return 0;
}
There is also a standard for Durations.