## PowerShell v2+, <s>49</s> 46 bytes (date $args[0].insert(4,'-')-U %b%y).ToUpper() *Thanks to @Joey for saving 3 bytes!* Takes input `$args[0]` as an explicit string (e.g., `'201604'`) via command-line input. Uses the `string.Insert()` function to put a `-` in the appropriate space, and that resultant string forms input to the [`Get-Date` cmdlet](https://technet.microsoft.com/en-us/library/hh849887.aspx) with the `-U`format parameter specifying the three-month shorthand plus two-digit year. We encapsulate that in parens, and tack on a `.ToUpper()` to make the output string capitalized. That string is left on the pipeline and printing is implicit. Also, as pointed out, this is locale-sensitive. Here's the locale information that I'm using where this works correctly. PS C:\Tools\Scripts\golfing> get-culture LCID Name DisplayName ---- ---- ----------- 1033 en-US English (United States)