00001 #include "artdaq-core/Utilities/TimeUtils.h"
00002 #include <boost/date_time/posix_time/posix_time.hpp>
00003
00004 namespace BPT = boost::posix_time;
00005
00009 std::string artdaq::TimeUtils::
00010 convertUnixTimeToString(time_t inputUnixTime)
00011 {
00012
00013 BPT::ptime posixTime = BPT::from_time_t(inputUnixTime);
00014 std::string workingString = BPT::to_simple_string(posixTime);
00015 workingString.append(" UTC");
00016
00017 return workingString;
00018 }
00019
00023 std::string artdaq::TimeUtils::
00024 convertUnixTimeToString(struct timeval const& inputUnixTime)
00025 {
00026
00027 BPT::ptime posixTime = BPT::from_time_t(inputUnixTime.tv_sec);
00028 std::string workingString = BPT::to_simple_string(posixTime);
00029
00030
00031 char fractionalString[20];
00032 sprintf(fractionalString, "%06d", static_cast<int32_t>(inputUnixTime.tv_usec));
00033 workingString.append(".");
00034 workingString.append(fractionalString);
00035 workingString.append(" UTC");
00036
00037 return workingString;
00038 }
00039
00043 std::string artdaq::TimeUtils::
00044 convertUnixTimeToString(struct timespec const& inputUnixTime)
00045 {
00046
00047 BPT::ptime posixTime = BPT::from_time_t(inputUnixTime.tv_sec);
00048 std::string workingString = BPT::to_simple_string(posixTime);
00049
00050
00051 char fractionalString[20];
00052 sprintf(fractionalString, "%09ld", inputUnixTime.tv_nsec);
00053 workingString.append(".");
00054 workingString.append(fractionalString);
00055 workingString.append(" UTC");
00056
00057 return workingString;
00058 }