File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed
src/scorecode/contrib/django Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -59,6 +59,30 @@ class ScoringTool(models.TextChoices):
5959 help_text = _ ("Date when the scoring was calculated on the package" ),
6060 )
6161
62+ @classmethod
63+ def parse_score_date (cls , date_str , formats = None ):
64+ """
65+ Parse a date string into a timezone-aware datetime object,
66+ or return None if parsing fails.
67+ """
68+ from datetime import datetime
69+ from django .utils import timezone
70+
71+ if not formats :
72+ formats = ["%Y-%m-%d" , "%Y-%m-%dT%H:%M:%SZ" ]
73+
74+ if date_str :
75+ for fmt in formats :
76+ try :
77+ naive_datetime = datetime .strptime (date_str , fmt )
78+ return timezone .make_aware (
79+ naive_datetime , timezone .get_current_timezone ()
80+ )
81+ except ValueError :
82+ continue
83+
84+ return None
85+
6286 class Meta :
6387 abstract = True
6488
You can’t perform that action at this time.
0 commit comments