mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[3.2.x] Refs #32365 -- Allowed use of non-pytz timezone implementations.
Backport of 10d1261984 from master
			
			
This commit is contained in:
		
				
					committed by
					
						 Carlton Gibson
						Carlton Gibson
					
				
			
			
				
	
			
			
			
						parent
						
							de4e854f07
						
					
				
				
					commit
					a5d70cca12
				
			| @@ -987,21 +987,24 @@ appropriate entities. | ||||
|     :class:`~datetime.datetime`. If ``timezone`` is set to ``None``, it | ||||
|     defaults to the :ref:`current time zone <default-current-time-zone>`. | ||||
|  | ||||
|     The ``pytz.AmbiguousTimeError`` exception is raised if you try to make | ||||
|     ``value`` aware during a DST transition where the same time occurs twice | ||||
|     (when reverting from DST). Setting ``is_dst`` to ``True`` or ``False`` will | ||||
|     avoid the exception by choosing if the time is pre-transition or | ||||
|     post-transition respectively. | ||||
|     When using ``pytz``, the ``pytz.AmbiguousTimeError`` exception is raised if | ||||
|     you try to make ``value`` aware during a DST transition where the same time | ||||
|     occurs twice (when reverting from DST). Setting ``is_dst`` to ``True`` or | ||||
|     ``False`` will avoid the exception by choosing if the time is | ||||
|     pre-transition or post-transition respectively. | ||||
|  | ||||
|     The ``pytz.NonExistentTimeError`` exception is raised if you try to make | ||||
|     ``value`` aware during a DST transition such that the time never occurred. | ||||
|     For example, if the 2:00 hour is skipped during a DST transition, trying to | ||||
|     make 2:30 aware in that time zone will raise an exception. To avoid that | ||||
|     you can use ``is_dst`` to specify how ``make_aware()`` should interpret | ||||
|     such a nonexistent time. If ``is_dst=True`` then the above time would be | ||||
|     interpreted as 2:30 DST time (equivalent to 1:30 local time). Conversely, | ||||
|     if ``is_dst=False`` the time would be interpreted as 2:30 standard time | ||||
|     (equivalent to 3:30 local time). | ||||
|     When using ``pytz``, the ``pytz.NonExistentTimeError`` exception is raised | ||||
|     if you try to make ``value`` aware during a DST transition such that the | ||||
|     time never occurred. For example, if the 2:00 hour is skipped during a DST | ||||
|     transition, trying to make 2:30 aware in that time zone will raise an | ||||
|     exception. To avoid that you can use ``is_dst`` to specify how | ||||
|     ``make_aware()`` should interpret such a nonexistent time. If | ||||
|     ``is_dst=True`` then the above time would be interpreted as 2:30 DST time | ||||
|     (equivalent to 1:30 local time). Conversely, if ``is_dst=False`` the time | ||||
|     would be interpreted as 2:30 standard time (equivalent to 3:30 local time). | ||||
|  | ||||
|     The ``is_dst`` parameter has no effect when using non-``pytz`` timezone | ||||
|     implementations. | ||||
|  | ||||
| .. function:: make_naive(value, timezone=None) | ||||
|  | ||||
|   | ||||
| @@ -657,6 +657,9 @@ MySQL 5.7 and higher. | ||||
| Miscellaneous | ||||
| ------------- | ||||
|  | ||||
| * Django now supports non-``pytz`` time zones, such as Python 3.9+'s | ||||
|   :mod:`zoneinfo` module and its backport. | ||||
|  | ||||
| * The undocumented ``SpatiaLiteOperations.proj4_version()`` method is renamed | ||||
|   to ``proj_version()``. | ||||
|  | ||||
|   | ||||
| @@ -26,8 +26,15 @@ to this problem is to use UTC in the code and use local time only when | ||||
| interacting with end users. | ||||
|  | ||||
| Time zone support is disabled by default. To enable it, set :setting:`USE_TZ = | ||||
| True <USE_TZ>` in your settings file. Time zone support uses pytz_, which is | ||||
| installed when you install Django. | ||||
| True <USE_TZ>` in your settings file. By default, time zone support uses pytz_, | ||||
| which is installed when you install Django; Django also supports the use of | ||||
| other time zone implementations like :mod:`zoneinfo` by passing | ||||
| :class:`~datetime.tzinfo` objects directly to functions in | ||||
| :mod:`django.utils.timezone`. | ||||
|  | ||||
| .. versionchanged:: 3.2 | ||||
|  | ||||
|     Support for non-``pytz`` timezone implementations was added. | ||||
|  | ||||
| .. note:: | ||||
|  | ||||
| @@ -680,7 +687,8 @@ Usage | ||||
|  | ||||
|    pytz_ provides helpers_, including a list of current time zones and a list | ||||
|    of all available time zones -- some of which are only of historical | ||||
|    interest. | ||||
|    interest. :mod:`zoneinfo` also provides similar functionality via | ||||
|    :func:`zoneinfo.available_timezones`. | ||||
|  | ||||
| .. _pytz: http://pytz.sourceforge.net/ | ||||
| .. _more examples: http://pytz.sourceforge.net/#example-usage | ||||
|   | ||||
		Reference in New Issue
	
	Block a user