mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	[utils] strftime_or_none: Handle negative timestamps
				
					
				
			Closes #6706 Authored by pukkandan, dirkf
This commit is contained in:
		@@ -2452,7 +2452,10 @@ def strftime_or_none(timestamp, date_format, default=None):
 | 
				
			|||||||
        if isinstance(timestamp, (int, float)):  # unix timestamp
 | 
					        if isinstance(timestamp, (int, float)):  # unix timestamp
 | 
				
			||||||
            # Using naive datetime here can break timestamp() in Windows
 | 
					            # Using naive datetime here can break timestamp() in Windows
 | 
				
			||||||
            # Ref: https://github.com/yt-dlp/yt-dlp/issues/5185, https://github.com/python/cpython/issues/94414
 | 
					            # Ref: https://github.com/yt-dlp/yt-dlp/issues/5185, https://github.com/python/cpython/issues/94414
 | 
				
			||||||
            datetime_object = datetime.datetime.fromtimestamp(timestamp, datetime.timezone.utc)
 | 
					            # Also, datetime.datetime.fromtimestamp breaks for negative timestamps
 | 
				
			||||||
 | 
					            # Ref: https://github.com/yt-dlp/yt-dlp/issues/6706#issuecomment-1496842642
 | 
				
			||||||
 | 
					            datetime_object = (datetime.datetime.fromtimestamp(0, datetime.timezone.utc)
 | 
				
			||||||
 | 
					                               + datetime.timedelta(seconds=timestamp))
 | 
				
			||||||
        elif isinstance(timestamp, str):  # assume YYYYMMDD
 | 
					        elif isinstance(timestamp, str):  # assume YYYYMMDD
 | 
				
			||||||
            datetime_object = datetime.datetime.strptime(timestamp, '%Y%m%d')
 | 
					            datetime_object = datetime.datetime.strptime(timestamp, '%Y%m%d')
 | 
				
			||||||
        date_format = re.sub(  # Support %s on windows
 | 
					        date_format = re.sub(  # Support %s on windows
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user