artdaq_core  v1_07_00
 All Classes Namespaces Functions
TimeUtils.cc
1 #include "artdaq-core/Utilities/TimeUtils.h"
2 #include <boost/date_time/posix_time/posix_time.hpp>
3 
4 namespace BPT = boost::posix_time;
5 
9 std::string artdaq::TimeUtils::
10 convertUnixTimeToString(time_t inputUnixTime)
11 {
12  // whole seconds
13  BPT::ptime posixTime = BPT::from_time_t(inputUnixTime);
14  std::string workingString = BPT::to_simple_string(posixTime);
15  workingString.append(" UTC");
16 
17  return workingString;
18 }
19 
23 std::string artdaq::TimeUtils::
24 convertUnixTimeToString(struct timeval const& inputUnixTime)
25 {
26  // deal with whole seconds first
27  BPT::ptime posixTime = BPT::from_time_t(inputUnixTime.tv_sec);
28  std::string workingString = BPT::to_simple_string(posixTime);
29 
30  // now fractional seconds
31  char fractionalString[20];
32  sprintf(fractionalString, "%06d", static_cast<int32_t>(inputUnixTime.tv_usec));
33  workingString.append(".");
34  workingString.append(fractionalString);
35  workingString.append(" UTC");
36 
37  return workingString;
38 }
39 
43 std::string artdaq::TimeUtils::
44 convertUnixTimeToString(struct timespec const& inputUnixTime)
45 {
46  // deal with whole seconds first
47  BPT::ptime posixTime = BPT::from_time_t(inputUnixTime.tv_sec);
48  std::string workingString = BPT::to_simple_string(posixTime);
49 
50  // now fractional seconds
51  char fractionalString[20];
52  sprintf(fractionalString, "%09ld", inputUnixTime.tv_nsec);
53  workingString.append(".");
54  workingString.append(fractionalString);
55  workingString.append(" UTC");
56 
57  return workingString;
58 }