dately 2.1.2__tar.gz → 2.1.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. dately-2.1.4/PKG-INFO +473 -0
  2. dately-2.1.4/README.md +450 -0
  3. {dately-2.1.2 → dately-2.1.4}/dately/core.py +27 -4
  4. {dately-2.1.2 → dately-2.1.4}/dately/timeutils.py +2 -50
  5. {dately-2.1.2 → dately-2.1.4}/dately/timezone.py +43 -64
  6. dately-2.1.4/dately.egg-info/PKG-INFO +473 -0
  7. dately-2.1.4/setup.py +53 -0
  8. dately-2.1.2/PKG-INFO +0 -60
  9. dately-2.1.2/README.md +0 -45
  10. dately-2.1.2/dately.egg-info/PKG-INFO +0 -60
  11. dately-2.1.2/setup.py +0 -41
  12. {dately-2.1.2 → dately-2.1.4}/dately/__init__.py +0 -0
  13. {dately-2.1.2 → dately-2.1.4}/dately/mold/__init__.py +0 -0
  14. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/Compiled.cp38-win_amd64.pyd +0 -0
  15. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/__init__.py +0 -0
  16. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/cdatetime/UniversalDateFormatter.cp38-win_amd64.pyd +0 -0
  17. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/cdatetime/__init__.py +0 -0
  18. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/cdatetime/iso8601T.cp38-win_amd64.pyd +0 -0
  19. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/cdatetime/iso8601Z.cp38-win_amd64.pyd +0 -0
  20. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/cdatetime/whichformat.cp38-win_amd64.pyd +0 -0
  21. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/clean_str.cp38-win_amd64.pyd +0 -0
  22. {dately-2.1.2 → dately-2.1.4}/dately/mold/pyd/time_zones.cp38-win_amd64.pyd +0 -0
  23. {dately-2.1.2 → dately-2.1.4}/dately/mskutils.py +0 -0
  24. {dately-2.1.2 → dately-2.1.4}/dately/sysutils.py +0 -0
  25. {dately-2.1.2 → dately-2.1.4}/dately/utils.py +0 -0
  26. {dately-2.1.2 → dately-2.1.4}/dately.egg-info/SOURCES.txt +0 -0
  27. {dately-2.1.2 → dately-2.1.4}/dately.egg-info/dependency_links.txt +0 -0
  28. {dately-2.1.2 → dately-2.1.4}/dately.egg-info/requires.txt +0 -0
  29. {dately-2.1.2 → dately-2.1.4}/dately.egg-info/top_level.txt +0 -0
  30. {dately-2.1.2 → dately-2.1.4}/setup.cfg +0 -0
dately-2.1.4/PKG-INFO ADDED
@@ -0,0 +1,473 @@
1
+ Metadata-Version: 2.1
2
+ Name: dately
3
+ Version: 2.1.4
4
+ Summary: A comprehensive Python library for advanced date and time manipulation.
5
+ Home-page: https://github.com/cedricmoorejr/dately
6
+ Author: Cedric Moore Jr.
7
+ Author-email: cedricmoorejunior5@gmail.com
8
+ License: MIT
9
+ Project-URL: Source Code, https://github.com/cedricmoorejr/dately/tree/main/dately
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: Microsoft :: Windows
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Natural Language :: English
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Requires-Python: >=3.8
22
+ Description-Content-Type: text/markdown
23
+
24
+ <p align="center">
25
+ <img src="https://raw.githubusercontent.com/cedricmoorejr/dately/main/dately/assets/dately_logo.png" alt="Dately Logo" width="500"/>
26
+ </p>
27
+
28
+ ### Dately Library: Comprehensive Date and Time Handling in Python
29
+
30
+ The `dately` module is a comprehensive library designed for advanced date and time manipulation. It offers extensive capabilities to handle various date and time formats, ensuring compatibility across different systems and data structures. The module provides tools for validating, extracting, and transforming date and time information with a focus on performance and accuracy.
31
+
32
+ #### Table of Contents
33
+ 1. [Why Choose Dately?](#why-choose-dately)
34
+ 2. [Key Features](#key-features)
35
+ 3. [Solving Windows Date Formatting Issues](#solving-windows-date-formatting-issues)
36
+ 4. [Usage Examples - Working with Date Strings](#usage-examples---working-with-date-strings)
37
+ - [Importing the Module](#importing-the-module)
38
+ - [Extracting Datetime Components](#extracting-datetime-components)
39
+ - [Detecting Datetime Formats](#detecting-datetime-formats)
40
+ - [Converting Dates](#converting-dates)
41
+ - [Converting Dates in Dictionaries](#converting-dates-in-dictionaries)
42
+ - [Replacing Datestring](#replacing-datestring)
43
+ - [Replacing Datetimestring](#replacing-datetimestring)
44
+ 5. [Working with Time Zones](#working-with-time-zones)
45
+ - [Retrieving Time Zone Information](#retrieving-time-zone-information)
46
+ - [Time Zone Operations](#time-zone-operations)
47
+
48
+ #### Why Choose Dately?
49
+
50
+ - **Windows Optimized**: Specifically addresses inconsistencies in Python's date formatting on the Windows operating system.
51
+ - **Comprehensive Functionalities**: Supports date parsing, detection, extraction, and conversion for various input types, including date strings, datetime objects, pandas Series, and NumPy arrays.
52
+ - **High Performance**: Leverages both high-level Python and low-level C code (via Cython) for efficient operations.
53
+
54
+ #### Key Features
55
+
56
+ 1. **Date and Time Format Detection**:
57
+ - Automatically detect various date and time formats from strings, ensuring seamless parsing and conversion.
58
+ - Supports a wide range of date formats, including standard and unique custom formats.
59
+
60
+ 2. **Timezone Management**:
61
+ - Provides detailed information for specific time zones.
62
+ - Converts time from one time zone to another.
63
+ - Retrieves the current time for specific time zones.
64
+ - Categorizes time zones by country, offset, and daylight saving time observance.
65
+
66
+ 3. **String Manipulation and Validation**:
67
+ - Extract specific components (year, month, day, hour, minute, second, timezone) from datetime strings.
68
+ - Validate and replace parts of datetime strings to ensure accuracy and consistency.
69
+ - Strip time and timezone information from datetime strings when needed.
70
+
71
+ 4. **Performance Optimizations**:
72
+ - Utilizes Cython to enhance performance for computationally intensive tasks.
73
+ - Interfaces with underlying C code to perform high-speed string operations and date validations.
74
+
75
+ #### Solving Windows Date Formatting Issues
76
+
77
+ A key aspect of this module is addressing inconsistencies in Python's date formatting on the Windows operating system. The module specifically targets the handling of the hyphen-minus (-) in date format specifiers. This flag, used to remove leading zeros from formatted output (e.g., turning '01' into '1' for January), works reliably on Unix-like systems but does not function as intended on Windows.
78
+
79
+ To solve this problem on Windows, the `dately` module introduces a workaround using regular expressions. It utilizes a detection function to determine the format string and then examines each date component for leading zeros through an extract_date_component function and a subsequent has_leading_zero check. Depending on the presence of leading zeros, the module adjusts the format string-replacing `%m` with `%-m` where applicable-to emulate the behavior expected from the hyphen-minus on Unix-like systems.
80
+
81
+ This method ensures that users on Windows achieve consistent date formatting, effectively compensating for the lack of native support for the hyphen-minus in date specifiers on this system.
82
+
83
+ Overall, `dately` is a powerful utility for anyone needing precise and flexible date and time handling in their applications, making it easier to manage, format, and validate date and time data consistently and efficiently.
84
+
85
+ ## Usage Examples - Working with Date Strings
86
+
87
+ ### Importing the Module
88
+
89
+ ```python
90
+ # Import module
91
+ import dately as dtly
92
+
93
+ # Additional imports for examples
94
+ import pandas as pd
95
+ import numpy as np
96
+
97
+ # Set variables
98
+ datestring = "2023-06-21"
99
+ datestring_list = [
100
+ '2023-06-21', '2024-06-21', '2024-07-21', '2024-08-20',
101
+ '2024-09-19', '2024-10-19', '2024-11-18', '2024-12-18',
102
+ '2025-01-17', '2025-02-16', '2025-03-18', '2025-04-17'
103
+ ]
104
+ datestring_array = np.array(datestring_list)
105
+ datestring_series = pd.Series(datestring_list)
106
+ ```
107
+
108
+
109
+
110
+
111
+ ### Extracting Datetime Components
112
+
113
+ #### Single Date String
114
+
115
+ ```python
116
+ print(dtly.dt.extract_datetime_component(datestring, "year"))
117
+ # Output: '2023'
118
+
119
+ print(dtly.dt.extract_datetime_component(datestring, "day"))
120
+ # Output: '21'
121
+
122
+ print(dtly.dt.extract_datetime_component(datestring, "month"))
123
+ # Output: '06'
124
+ ```
125
+
126
+ #### List of Date Strings
127
+
128
+ ```python
129
+ print(dtly.dt.extract_datetime_component(datestring_list, "year"))
130
+ # Output: ['2023', '2024', '2024', '2024', '2024', '2024', '2024', '2024', '2025', '2025', '2025', '2025']
131
+
132
+ print(dtly.dt.extract_datetime_component(datestring_list, "day"))
133
+ # Output: ['21', '21', '21', '20', '19', '19', '18', '18', '17', '16', '18', '17']
134
+
135
+ print(dtly.dt.extract_datetime_component(datestring_list, "month"))
136
+ # Output: ['06', '06', '07', '08', '09', '10', '11', '12', '01', '02', '03', '04']
137
+ ```
138
+
139
+ #### NumPy Array of Date Strings
140
+
141
+ ```python
142
+ print(dtly.dt.extract_datetime_component(datestring_array, "year"))
143
+ # Output: array(['2023', '2024', '2024', '2024', '2024', '2024', '2024', '2024', '2025', '2025', '2025', '2025'], dtype=object)
144
+
145
+ print(dtly.dt.extract_datetime_component(datestring_array, "day"))
146
+ # Output: array(['21', '21', '21', '20', '19', '19', '18', '18', '17', '16', '18', '17'], dtype=object)
147
+
148
+ print(dtly.dt.extract_datetime_component(datestring_array, "month"))
149
+ # Output: array(['06', '06', '07', '08', '09', '10', '11', '12', '01', '02', '03', '04'], dtype=object)
150
+ ```
151
+
152
+ #### Pandas Series of Date Strings
153
+
154
+ ```python
155
+ print(dtly.dt.extract_datetime_component(datestring_series, "year"))
156
+ # Output:
157
+ # 0 2023
158
+ # 1 2024
159
+ # 2 2024
160
+ # 3 2024
161
+ # 4 2024
162
+ # 5 2024
163
+ # 6 2024
164
+ # 7 2024
165
+ # 8 2025
166
+ # 9 2025
167
+ # 10 2025
168
+ # 11 2025
169
+ # dtype: object
170
+
171
+ print(dtly.dt.extract_datetime_component(datestring_series, "day"))
172
+ # Output:
173
+ # 0 21
174
+ # 1 21
175
+ # 2 21
176
+ # 3 20
177
+ # 4 19
178
+ # 5 19
179
+ # 6 18
180
+ # 7 18
181
+ # 8 17
182
+ # 9 16
183
+ # 10 18
184
+ # 11 17
185
+ # dtype: object
186
+
187
+ print(dtly.dt.extract_datetime_component(datestring_series, "month"))
188
+ # Output:
189
+ # 0 06
190
+ # 1 06
191
+ # 2 07
192
+ # 3 08
193
+ # 4 09
194
+ # 5 10
195
+ # 6 11
196
+ # 7 12
197
+ # 8 01
198
+ # 9 02
199
+ # 10 03
200
+ # 11 04
201
+ # dtype: object
202
+ ```
203
+
204
+
205
+
206
+
207
+ ### Detecting Datetime Formats
208
+
209
+ #### Single Date String
210
+
211
+ ```python
212
+ print(dtly.dt.detect_date_format(datestring))
213
+ # Output: '%Y-%m-%d'
214
+ ```
215
+
216
+ #### List of Date Strings
217
+
218
+ ```python
219
+ print(dtly.dt.detect_date_format(datestring_list))
220
+ # Output: ['%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d']
221
+ ```
222
+
223
+ #### NumPy Array of Date Strings
224
+
225
+ ```python
226
+ print(dtly.dt.detect_date_format(datestring_array))
227
+ # Output: array(['%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d', '%Y-%m-%d'], dtype=object)
228
+ ```
229
+
230
+ #### Pandas Series of Date Strings
231
+
232
+ ```python
233
+ print(dtly.dt.detect_date_format(datestring_series))
234
+ # Output:
235
+ # 0 %Y-%m-%d
236
+ # 1 %Y-%m-%d
237
+ # 2 %Y-%m-%d
238
+ # 3 %Y-%m-%d
239
+ # 4 %Y-%m-%d
240
+ # 5 %Y-%m-%d
241
+ # 6 %Y-%m-%d
242
+ # 7 %Y-%m-%d
243
+ # 8 %Y-%m-%d
244
+ # 9 %Y-%m-%d
245
+ # 10 %Y-%m-%d
246
+ # 11 %Y-%m-%d
247
+ # dtype: object
248
+ ```
249
+
250
+
251
+
252
+
253
+
254
+ ### Converting Dates
255
+
256
+ ```python
257
+ # Converting a single date string
258
+ print(dtly.dt.convert_date(datestring, to_format='%m.%Y/%d %I:%M %p', delta=1))
259
+ # Output: '06.2023/22 12:00 AM'
260
+
261
+ # Converting a list of date strings
262
+ print(dtly.dt.convert_date(datestring_list, to_format='%Y/%m/%d %I:%M:%S %p'))
263
+ # Output: ['2023/06/21 12:00:00 AM', '2024/06/21 12:00:00 AM', '2024/07/21 12:00:00 AM', '2024/08/20 12:00:00 AM', '2024/09/19 12:00:00 AM', '2024/10/19 12:00:00 AM', '2024/11/18 12:00:00 AM', '2024/12/18 12:00:00 AM', '2025/01/17 12:00:00 AM', '2025/02/16 12:00:00 AM', '2025/03/18 12:00:00 AM', '2025/04/17 12:00:00 AM']
264
+
265
+ # Converting a NumPy array of date strings
266
+ print(dtly.dt.convert_date(datestring_array, to_format='%y/%m-%d %H:%M'))
267
+ # Output: array(['23/06-21 00:00', '24/06-21 00:00', '24/07-21 00:00', '24/08-20 00:00', '24/09-19 00:00', '24/10-19 00:00', '24/11-18 00:00', '24/12-18 00:00', '25/01-17 00:00', '25/02-16 00:00', '25/03-18 00:00', '25/04-17 00:00'], dtype=object)
268
+
269
+ # Converting a Pandas Series of date strings
270
+ print(dtly.dt.convert_date(datestring_series, to_format='%Y.%m.%d'))
271
+ # Output:
272
+ # 0 2023.06.21
273
+ # 1 2024.06.21
274
+ # 2 2024.07.21
275
+ # 3 2024.08.20
276
+ # 4 2024.09.19
277
+ # 5 2024.10.19
278
+ # 6 2024.11.18
279
+ # 7 2024.12.18
280
+ # 8 2025.01.17
281
+ # 9 2025.02.16
282
+ # 10 2025.03.18
283
+ # 11 2025.04.17
284
+ # dtype: object
285
+ ```
286
+
287
+ ### Converting Dates in Dictionaries
288
+
289
+ ```python
290
+ # Sample dictionary with dates
291
+ sample_dict = {
292
+ "event": {
293
+ "name": "Annual Conference",
294
+ "dates": {
295
+ "start_date": "2024-01-15",
296
+ "end_date": "2024-01-20"
297
+ },
298
+ "registration": {
299
+ "open_date": "2023-11-01",
300
+ "close_date": "2023-12-30"
301
+ }
302
+ },
303
+ "meetings": [
304
+ {
305
+ "title": "Planning Meeting",
306
+ "meeting_date": "2023-10-01"
307
+ },
308
+ {
309
+ "title": "Review Meeting",
310
+ "meeting_date": "2023-10-15"
311
+ }
312
+ ],
313
+ "webinars": [
314
+ {
315
+ "topic": "Introduction to the Event",
316
+ "session_dates": [
317
+ "2023-11-10",
318
+ "2023-11-17"
319
+ ]
320
+ }
321
+ ],
322
+ "workshops": {
323
+ "sessions": [
324
+ {
325
+ "session_name": "Workshop 1",
326
+ "date": "01/01/2024"
327
+ },
328
+ {
329
+ "session_name": "Workshop 2",
330
+ "date": "2024-01-18"
331
+ }
332
+ ]
333
+ }
334
+ }
335
+
336
+ # Converting dates in a dictionary
337
+ converted_dict = dtly.dt.convert_date(sample_dict, to_format='%Y/%m', dict_keys=["meeting_date", "date", "session_dates"])
338
+ print(converted_dict)
339
+ # Output:
340
+ # {'event': {'name': 'Annual Conference', 'dates': {'start_date': '2024-01-15', 'end_date': '2024-01-20'}, 'registration': {'open_date': '2023-11-01', 'close_date': '2023-12-30'}}, 'meetings': [{'title': 'Planning Meeting', 'meeting_date': '2023/10'}, {'title': 'Review Meeting', 'meeting_date': '2023/10'}], 'webinars': [{'topic': 'Introduction to the Event', 'session_dates': ['2023/11', '2023/11']}], 'workshops': {'sessions': [{'session_name': 'Workshop 1', 'date': '2024/01'}, {'session_name': 'Workshop 2', 'date': '2024/01'}]}}
341
+ ```
342
+
343
+
344
+ ### Replacing Datestring
345
+
346
+ ```python
347
+ # Replacing year in a single date string
348
+ print(dtly.dt.replace_datestring(datestring, year=2021))
349
+ # Output: '2021-06-21'
350
+
351
+ # Replacing month in a single date string
352
+ print(dtly.dt.replace_datestring(datestring, month="5"))
353
+ # Output: '2023-5-21'
354
+
355
+ # Replacing day in a list of date strings
356
+ print(dtly.dt.replace_datestring(datestring_list, day=6))
357
+ # Output: ['2023-06-6', '2024-06-6', '2024-07-6', '2024-08-6', '2024-09-6', '2024-10-6', '2024-11-6', '2024-12-6', '2025-01-6', '2025-02-6', '2025-03-6', '2025-04-6']
358
+
359
+ # Replacing day in a Pandas Series of date strings
360
+ print(dtly.dt.replace_datestring(datestring_series, day="02"))
361
+ # Output:
362
+ # 0 2023-06-02
363
+ # 1 2024-06-02
364
+ # 2 2024-07-02
365
+ # 3 2024-08-02
366
+ # 4 2024-09-02
367
+ # 5 2024-10-02
368
+ # 6 2024-11-02
369
+ # 7 2024-12-02
370
+ # 8 2025-01-02
371
+ # 9 2025-02-02
372
+ # 10 2025-03-02
373
+ # 11 2025-04-02
374
+ # dtype: object
375
+ ```
376
+
377
+ ### Replacing Datetimestring
378
+
379
+ ```python
380
+ # Replacing time components in a single date string
381
+ print(dtly.dt.replace_timestring(datestring))
382
+ # Output: '2023-06-21 15:17:47.50691'
383
+
384
+ print(dtly.dt.replace_timestring(datestring, hour=13))
385
+ # Output: '2023-06-21 13:17:47.56700'
386
+
387
+ print(dtly.dt.replace_timestring(datestring, hour="02"))
388
+ # Output: '2023-06-21 02:17:47.63773'
389
+
390
+ print(dtly.dt.replace_timestring(datestring, hour="02", minute=11))
391
+ # Output: '2023-06-21 02:11:47.69779'
392
+
393
+ print(dtly.dt.replace_timestring(datestring, hour="02", minute=10, second=44))
394
+ # Output: '2023-06-21 02:10:44.75777'
395
+
396
+ print(dtly.dt.replace_timestring(datestring, hour="02", minute=10, second=44, microsecond=1))
397
+ # Output: '2023-06-21 02:10:44.00001'
398
+
399
+ print(dtly.dt.replace_timestring(datestring, hour="02", minute=10, second=44, microsecond=1, time_indicator="AM"))
400
+ # Output: '2023-06-21 02:10:44.00001 AM'
401
+
402
+ # Replacing time components in an ISO date string
403
+ iso_datestring = "2023-06-21T12:30:00Z"
404
+ print(dtly.dt.replace_timestring(iso_datestring, hour=2, minute=10, second=44, microsecond=1))
405
+ # Output: '2023-06-21T02:10:44.000001+00:00'
406
+
407
+ print(dtly.dt.replace_timestring(iso_datestring, hour=2, minute=10, second=44, microsecond=1, tzinfo=3))
408
+ # Output: '2023-06-21T02:10:44.000001+03:00'
409
+ ```
410
+
411
+
412
+
413
+
414
+ ## Working with Time Zones
415
+
416
+ ### Retrieving Time Zone Information
417
+
418
+ ```python
419
+ # Get the list of country codes
420
+ dtly.TimeZoner.CountryCodes
421
+ # Output: ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX'.....]
422
+ ```
423
+
424
+ ```python
425
+ # Get the list of country names
426
+ dtly.TimeZoner.CountryNames
427
+ # Output: ['Afghanistan', 'Aland Islands', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica'.....]
428
+ ```
429
+
430
+ ```python
431
+ # Get the list of time zones
432
+ dtly.TimeZoner.Zones
433
+ # Output: ['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui'.....]
434
+ ```
435
+
436
+ ```python
437
+ # Get time zones by country
438
+ dtly.TimeZoner.ZonesByCountry
439
+ # Output: {'CI': ['Africa/Abidjan'], 'GH': ['Africa/Accra'], 'ET': ['Africa/Addis_Ababa'].....]}
440
+ ```
441
+
442
+ ```python
443
+ # Get time zones by DST observance
444
+ dtly.TimeZoner.ObservesDST
445
+ # Output: {'observes_dst': ['Africa/Casablanca', 'Africa/Ceuta', 'Africa/El_Aaiun'.....]}
446
+ ```
447
+ ```python
448
+ # Get time zones by offset
449
+ dtly.TimeZoner.Offsets
450
+ # Output: {'+00:00': ['Africa/Abidjan', 'Africa/Accra', 'Africa/Bamako'.....], '+03:00': ['Africa/Addis_Ababa', 'Africa/Asmara'.....], '-09:00': ['America/Adak', 'Pacific/Gambier'.....], '-08:00': ['America/Anchorage'.....]}
451
+ ```
452
+
453
+ ### Time Zone Operations
454
+
455
+ ```python
456
+ # Retrieve detailed information for a specific time zone
457
+ dtly.TimeZoner.FilterZoneDetail('America/Denver')
458
+ # Output: {'countryCode': 'US', 'countryName': 'United States', 'Offset': '-06:00', 'UTC offset (STD)': '-07:00', 'UTC offset (DST)': '-06:00', 'Abbreviation (STD)': 'MST', 'Abbreviation (DST)': 'MDT'}
459
+ ```
460
+
461
+ ```python
462
+ # Get the current time for a specific time zone
463
+ dtly.TimeZoner.CurrentTimebyZone('Australia/Adelaide')
464
+ # Output: '2024-07-02T04:32:05.642329+09:30'
465
+ ```
466
+
467
+ ```python
468
+ # Convert time from one time zone to another
469
+ from_zone = 'Africa/Ceuta'
470
+ to_zone = 'America/Anchorage'
471
+ dtly.TimeZoner.ConvertTimeZone(from_zone, to_zone, year=2024, month=5, day=22, hour=12, minute=13, second=22)
472
+ # Output: [{'countryCode': 'ES', 'countryName': 'Spain', 'zoneName': 'Africa/Ceuta', 'gmtOffset': 7200, 'timestamp': 1719865256}, {'countryCode': 'US', 'countryName': 'United States', 'zoneName': 'America/Anchorage', 'gmtOffset': -28800, 'timestamp': 1719829256}]
473
+ ```