One can attempt to shrink a log file at any time, regardless of recovery model.
The amount it shrinks will only go back to just after the last in-use virtual log file (VLF). VLFs are logical regions of a physical log file. You can use the
DBCC LOGINFO command to dump a list of all the VLFs for the database-in-context. In the
Status column, 0 means unused, and 2 means in-use. A shrink operation will only reclaim contiguous VLFs at the end of the physical file which have status 0.
The difference between recovery models is the mechanism that maintains the status of each VLF. In
FULL recovery, VLFs can't be overwritten at least until they've been backed up in a log backup.
Just a note that switching to
SIMPLE and then back to
FULL usually isn't a good idea, and should only be used as a very last resort in exceptional circumstances. Doing this will break the log chain (which can be restarted with a full or differential backup) and lose the ability to recover to a point-in-time within the log records that were dropped on the floor.