I'm decoding NMEA GPRMC sentences from a GPS device. The date field format is
191194 is 19 November 1994. This makes it impossible to represent years greater than 1999. Has the spec been amended to get around this problem?
Those messages correspond to the old NMEA 0183 specification. Which more than amended was replaced by NMEA 2000, that is very different and is not an ascii serial communication, it is basically a completely different beast. However NMEA 0183 is still in use and supported by many devices. And the two digit year just roll over. Therefore, year 2000 is represented as 00 and 2018 as 18. Here is an example of a chunk of NMEA output recorded by myself some years ago:
$SDMTW,8.8,C*34 $SDVHW,,,,,0.00,N,0.00,K*5B $GPRMC,190430,A,4812.3038,S,07330.7690,W,3.7,3.8,090210,13.7,E,D*26 $GPRMB,A,,,,,,,,,,,,A,D*0E $GPGGA,190430,4812.3038,S,07330.7690,W,2,06,2.5,4.9,M,12.4,M,,*42 $GPGLL,4812.3038,S,07330.7690,W,190430,A,D*4A
You can see that the timestamp is 090210, which was indeed February 9th 2010.
Thankfully, there is no ambiguity in the data because there was no GPS nor NMEA back in 1910. The First NMEA protocol was NMEA 0180, with the "80" in "0180" meaning 1980 (3), so you can be confident that any value below 80 corresponds to this century. The problems are going to start in 2080, but thankfully that is still a long way ahead.
Since GPS only started in 1978 you can probably assume any date less than 78 is in this century.