This looks like a simple job for Python or Arcade.
Python:
# values in Date fields in ArcGis are datetime.datetime objects
import datetime
def get_financial_year(timestamp):
"""Returns the Australian financial year of the given timestamp (as datetime.datetime object) as a string."""
year = timestamp.year
if timestamp.month >= 7:
return "{}-{}".format(year, str(year+1)[-2:])
return "{}-{}".format(year-1, str(year)[-2:])
# to test it:
timestamps = [
datetime.datetime(2020, 11, 16, 0, 2, 58),
datetime.datetime(2020, 6, 16, 0, 2, 58),
datetime.datetime(2019, 10, 16, 0, 2, 58),
datetime.datetime(2019, 3, 16, 0, 2, 58),
]
for ts in timestamps:
print(get_financial_year(ts))
#2020-21
#2019-20
#2019-20
#2018-19
You can use that in the CalculateField tool (so you can also use it as part of a model), or you can just keep working with python:
fc_path = "path/to/your/feature/class"
date_field = "Timestamp"
financial_year_field = "FinancialYear"
with arcpy.da.UpdateCursor(fc_path, [date_field, financial_year_field]) as cursor:
for date, year in cursor:
cursor.updateRow([date, get_financial_year(date)])
Have a great day!
Johannes