# [PowerShell], <s>49</s> <s>46</s> 40 bytes

<!-- language-all: lang-powershell -->

    date "$args".insert(4,'-')-U %b%y|% *per

[Try it online!][TIO-k73qt74h]

[PowerShell]: https://github.com/TryItOnline/TioSetup/wiki/Powershell
[TIO-k73qt74h]: https://tio.run/##K8gvTy0qzkjNyfn/PyWxJFVBSSWxKL1YSS8zrzi1qETDREddV11TN1RBNUm1skZVQasgtej////qRgaGZgYm6gA "PowerShell – Try It Online"

*Thanks to @Joey for saving 3 bytes!*

Takes input `$args` 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 then 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)