There is no direct command for generating the ISOweek (ISO8601) from a date in Stata.
The following single-line formula derives the ISOweek from any date post 1 Jan 1900.
Should you require ISOweeks from _before_ that date, substitute mdy(1,1,1753) for mdy(1,1,1900), and that will get you back to before the Industrial Revolution!

** derived from the EXCELLENT description of
** how to derive an ISOweek from a date
** described here: https://www.sqlservercentral.com/art...so-week-number
** based on a post here: http://stackoverflow.com/questions/7...ql-server-2005
** from "t-clausen.dk"


gen ISOweek =int((doy(7*int((datevariable-mdy(1,1,1900))/7)+ mdy(1,1,1900) + 3)+6)/7)