반응형
|
mysql에 있는 unix timestamp을 생성하고 다시 DateTime으로 변경을 해야 했다. DataTime을 Unix TimeStamp로 변경 하기도 해야 했는 데 샘플을 만들어 보았다. 일단 C#에서 unix TimeStamp을 생성하는 데 힘들었다. 무엇이 틀렸는 지 날짜의 시간이 맞지 않아 고생했다.
/// <summary>
/// method for converting a System.DateTime value to a UNIX Timestamp
/// 지금 시간을 Unix timestamp로 변경하는 코드이다.
/// 지금 시간을 Unix timestamp로 변경하는 코드이다.
/// </summary>
private void ConvertToTimestamp()
{
DateTime now = DateTime.Now;
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
textBox1.Text = Convert.ToString(Convert.ToInt64((now - epoch).TotalSeconds));
}
반대로 Unix Timestamp을 DataTime로 변경하는 소스이다.
// This is an example of a UNIX timestamp for the date/time 11-04-2005 09:25.
double timestamp = Convert.ToDouble(textBox1.Text);
// First make a System.DateTime equivalent to the UNIX Epoch.
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
// Add the number of seconds in UNIX timestamp to be converted.
dateTime = dateTime.AddSeconds(timestamp);
// The dateTime now contains the right date/time so to format the string,
// use the standard formatting methods of the DateTime object.
string printDate = dateTime.ToShortDateString() + " " + dateTime.ToShortTimeString();
// Print the date and time
textBox1.Text = Convert.ToString(printDate);
Convert System.DateTime to UNIX timestamp 또는 Convert UNIX timestamp to System.DateTime 하는 샘플이다.
쿼리로 질의 할때는 Sqlite에서는 해당 년, 월일을 뽑아올 수 있다.
select conversationID, fromJID, toJID, datetime(sentdate, 'unixepoch') as sentdate, strftime('%Y년%m월', datetime(sentdate, 'unixepoch')) as year, sentdate as sdate, strftime('%d(%w) %H:%M:%S', datetime(sentdate, 'unixepoch')) as day, body, datetime(sentdate, 'unixepoch') as CDATETIME, case when fromJID LIKE '000003000003@messenger.co.kr%' then toJID else fromJID end as allJID from ofMessageArchive
where strftime('%Y-%m', datetime(sentdate, 'unixepoch')) BETWEEN '2011-11' and '2011-12' and (toJID LIKE '000003000003@messenger.co.kr%' or fromJID LIKE '000003000003@messenger.co.kr%') and sentdate > '0' group by conversationID order by sentDate
참고한 사이트
(웹사이트에서 현재 UNIX Timestamp을 보여주는 사이트)
http://www.epochconverter.com
How do you convert epoch time in C#?
http://stackoverflow.com/questions/2883576/how-do-you-convert-epoch-time-in-c
UNIX timestamp to System.DateTime
http://www.codeproject.com/KB/cs/timestamp.aspx
Convert System.DateTime to UNIX timestamp
http://www.dreamincode.net/code/snippet2094.htm
|