joeg/azure-sdk-for-java — comment on commit 3a7d97c495f92ac8b0d13643f254ca912eb43c64
File: microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/client/AtomPubParser.java line 461
By jcookems:

There are a few problems with conversion between Table dates and Java dates:

1. The long pattern ("SSSSSSS") does not correctly serialize/deserialize milliseconds in Java. The problem is the SSSSSSS (which is also used in the link below): Java uses those for milliseconds, so there really should be exactly 3. This ib because SSSSSSS will parse "0.0000001" (100 nanoseconds) as 1 millisecond (with 6 leading zeros)
2. Even SSS will write out 0.002 seconds (2 milliseconds) as "2" (without leading zeros).
3. The also highlights an issue with lossiness: Java only supports millisecond accuraccy in Date, so the extra precission stored in the table is inaccessable to Java clients.

Someone else encountered a similar problem with formatting 10 years ago: http://www.velocityreviews.com/forums/t141682-simple-date-format-milliseconds-with-more-precision.html. Sadly this is a "feature" of the Java spec.