I'm using the following /etc/pf.conf configuration:
According to  "expire_days days after which account expires"
The expire_days and password_days are used to automatically calculate the
number of days from the date on which an account is created when the
account will expire or the user will be forced to change the account's
password. A value of `0' in either field will disable the corresponding
(account or password) expiration date.
However what the password_days parameter does is to include that in the /etc/passwd:
And according to  the expire parameter (60 in the above line) should be:
The expire field is the number of seconds from the epoch, UTC, until the
account expires. This field may be left empty to turn off the account
aging feature; a value of zero is equivalent to leaving the field empty.
So it's clearly a bug when pw generates the user as it should put the epoch time in that field.
ITYM pw.conf, not pf.conf?
(In reply to Mark Linimon from comment #1)
Correct sorry I meant /etc/pw.conf
I can confirm this is still an issue on 12.1.
I have in /etc/login.conf:
But this was not applied to newly-created accounts (regardless of using either adduser or "pw useradd"), which had 0 in the sixth field of master.passwd, meaning password expiration was ignored.
I first tried editing adduser.conf, adding 'upwexpire=1y', but then creating users failed with the error "pw: Invalid date". (I guess adduser calls pw useradd internally, which makes sense.) I then tried the example straight out of adduser.conf(5) of 'upwexpire=91d', which also fails. A bare number does work, but gets copied directly to the change field of master.passwd, rather than being converted to epoch-relative time.
Similarly, setting 'password_days = 365' in pw.conf, makes users get a literal 365 in master.passwd, just like Andres' report.
Workaround: Don't set password_days in pw.conf, but immediately after user creation, set the expiration time with "pw usermod -p"; date(1) can help convert relative dates to the epoch format, e.g. for 60 days in the future:
pw useradd $USER ...
pw usermod $USER -p `date -v +60d +%s`