#pragma once
#include <cstdint>
#include <iostream>
#include<ctime>
#include <sys/timeb.h>

using namespace std;

class Dateformat
{
public:
	Dateformat();
	Dateformat(uint64_t ts);
	static string currentTimeString();
	static string currentTimeString(string format);

public:
	uint64_t getTimestamp();
	uint64_t fromString(string timeString, string format);
	uint64_t now();
	string duration(uint64_t ts, string format);
	string toString(string format);

private:
	typedef struct { char character; int count; }format_vec_t;
	uint64_t timestamp = 0;
	string format="yyyy-MM-dd HH:mm:ss.SSS";
	int format_parse(string format, format_vec_t* vecBuff);
};

