On Tue, 2008-12-02 at 15:06 +0000, Karl Lattimer wrote:
> I can never find enough documentation about time in vala :( so I'm going
> to ask a bunch of questions here... Maybe I'll add a GNOME live page
> when I've got the important stuff done... God knows I already want to
> update the GTK/Cairo stuff to be more detailed.
> 
> Anyway. 
> 
> I need to turn a timestamp into a string, but I can't seem to see how to
> do this... Something like 
> 
> int timestamp = "1234151912"; // whatever...
> var time = new Time; 
> string date_string = Time.strftime("%s", timestamp); 
> // an output like yyyy-mm-dd hh:mm would be nice..
> 
> I can never seem to read the time vapi stuff properly :/ 

There is no proper time API in GLib, unfortunately. That's the reason
why Vala is also lacking a bit in that area. I've improved the situation
a bit in trunk now.

time_t timestamp = 1234151912;
var t = Time.gm (timestamp);

// returns time in RFC 3339 format: 2009-02-09 03:58:32
string date_string = t.to_string ();

// returns time in custom format, see strftime manpage
// for example, Mon Feb  9 03:58:32 2009
string custom_string = t.format ("%c");

> A little introduction to using the features of time would be really
> nice, I've got to do a whole load of calculations e.g. convert a
> timestamp to a nearest month, day, hour etc... then build a scale of
> various months/days/hours near by... I need to convert things back and
> forth between timestamps and do things like add one day and get the
> timestamp for that etc...

Conversion from time_t to GLib.Time:

        var t = Time.gm (timestamp)

Conversion from GLib.Time to time_t:

        time_t timestamp = t.mktime ();

Add one day to a timestamp:

        timestamp += 24 * 3600;

HTH,
Jürg

_______________________________________________
Vala-list mailing list
Vala-list@gnome.org
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to