Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
document
  • Loading branch information
clavedeluna committed Aug 30, 2024
commit 1a86c7501559105d575879b0dccafae5fcd304d9
4 changes: 4 additions & 0 deletions src/codemodder/scripts/generate_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,10 @@ class DocMetadata:
guidance_explained="This change is generally safe and will prevent deserialization vulnerabilities.",
need_sarif="Yes (DefectDojo)",
),
"timezone-aware-datetime": DocMetadata(
importance="Medium",
guidance_explained="This change makes your code more accurate with regards to timezones. However, it's possible you wish to specify a different timezone for your application needs.",
),
}

SONAR_CODEMOD_NAMES = [
Expand Down
14 changes: 14 additions & 0 deletions src/core_codemods/docs/pixee_python_timezone-aware-datetime.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Some `datetime` object calls use the machine's local timezone instead of a reasonable default like UTC. This may be okay in some cases, but it can lead to bugs. Misinterpretation of dates have been the culprit for serious issues in banking, satellite communications, and other industries.

The `datetime` [documentation](https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow) explicitly encourages using timezone aware objects to prevent bugs.

Our changes look like the following:
```diff
from datetime import datetime
import time

- datetime.utcnow()
- datetime.utcfromtimestamp(time.time())
+ datetime.now(tz=timezone.utc)
+ datetime.fromtimestamp(time.time(), tz=timezone.utc)
```