Coverage for pyquickhelper/loghelper/convert_helper.py: 73%
22 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 02:21 +0200
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 02:21 +0200
1# -*- coding: utf-8 -*-
2"""
3@file
4@brief Various functions about conversions.
5"""
6import datetime
9def str2datetime(dt, format=None):
10 """
11 convert a string into a datetime object, it can be:
12 - 2013-05-24 18:49:46
13 - 2013-05-24 18:49:46.568
15 @param dt string
16 @param format format for the conversion, the most complete one is
17 ``%Y-%m-%d %H:%M:%S.%f``
18 which you get by default
19 @rtype datetime
20 @return datetime
21 """
22 if "+" in dt:
23 dt = dt.split("+")[0].strip()
24 elif " -" in dt:
25 dt = dt.split(" -")[0].strip()
26 if format is None:
27 if " " in dt:
28 if "." in dt:
29 return datetime.datetime.strptime(dt, "%Y-%m-%d %H:%M:%S.%f")
30 else:
31 return datetime.datetime.strptime(dt, "%Y-%m-%d %H:%M:%S")
32 elif "T" in dt:
33 if "." in dt:
34 return datetime.datetime.strptime(dt, "%Y-%m-%dT%H:%M:%S.%f")
35 else:
36 return datetime.datetime.strptime(dt, "%Y-%m-%dT%H:%M:%S")
37 else:
38 return datetime.datetime.strptime(dt, "%Y-%m-%d")
39 else:
40 return datetime.datetime.strptime(dt, format)
43def datetime2str(dt):
44 """
45 Converts a datetime into a string.
47 @param dt datetime
48 @return string
49 """
50 return dt.strftime("%Y-%m-%d %H:%M:%S")
53def timestamp_to_datetime(timestamp):
54 """
55 convert a timestamp into a datetime
56 @param timestamp timestamp
57 @rtype datetime
58 """
59 return datetime.datetime.utcfromtimestamp(timestamp)