artdaq_core  v1_07_04
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
TimeUtils.cc
1 #include "artdaq-core/Utilities/TimeUtils.hh"
2 #include <boost/date_time/posix_time/posix_time.hpp>
3 
4 namespace BPT = boost::posix_time;
5 
6 std::string artdaq::TimeUtils::
7 convertUnixTimeToString(time_t inputUnixTime)
8 {
9  // whole seconds
10  BPT::ptime posixTime = BPT::from_time_t(inputUnixTime);
11  std::string workingString = BPT::to_simple_string(posixTime);
12  workingString.append(" UTC");
13 
14  return workingString;
15 }
16 
17 std::string artdaq::TimeUtils::
18 convertUnixTimeToString(struct timeval const& inputUnixTime)
19 {
20  // deal with whole seconds first
21  BPT::ptime posixTime = BPT::from_time_t(inputUnixTime.tv_sec);
22  std::string workingString = BPT::to_simple_string(posixTime);
23 
24  // now fractional seconds
25  char fractionalString[20];
26  sprintf(fractionalString, "%06d", static_cast<int32_t>(inputUnixTime.tv_usec));
27  workingString.append(".");
28  workingString.append(fractionalString);
29  workingString.append(" UTC");
30 
31  return workingString;
32 }
33 
34 std::string artdaq::TimeUtils::
35 convertUnixTimeToString(struct timespec const& inputUnixTime)
36 {
37  // deal with whole seconds first
38  BPT::ptime posixTime = BPT::from_time_t(inputUnixTime.tv_sec);
39  std::string workingString = BPT::to_simple_string(posixTime);
40 
41  // now fractional seconds
42  char fractionalString[20];
43  sprintf(fractionalString, "%09ld", inputUnixTime.tv_nsec);
44  workingString.append(".");
45  workingString.append(fractionalString);
46  workingString.append(" UTC");
47 
48  return workingString;
49 }
std::string convertUnixTimeToString(time_t inputUnixTime)
Converts a Unix time to its string representation, in UTC.
Definition: TimeUtils.cc:7