Jump to content

Zero Time offset outputting milliseconds


OscarSand
 Share

You are about to reply to a thread that has been inactive for 218 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hello! I've ran into an issue with the time part of a script I use on my visitor log.

Since the recent clock change reverting back to GMT from BST in the UK,  I changed  "integer Time_Offset = 1;"  to "integer Time_Offset = 0;"  to account for the change but now
it outputs the correct time but as "T13:04:51.599664Z" whereas previously it was just HH:MM:SS

Could anyone please help me rectify this or paste a corrected version, I'd be so grateful.

Below is the time part of the script. Thank you in advanced.


 

// from : http://wiki.secondlife.com/wiki/GetTimestampOffset
string  sbGetTimestamp(integer  intOffset) {
    // Start with December for purposes of wrapping
    list    lstDays  = [31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
 
    string  strTimestamp = llGetTimestamp();
 
    list    lstTime  = llParseString2List(strTimestamp, ["-", ":", ".", "T"], []);
    integer intYear  = llList2Integer(lstTime, 0);
    integer intMonth = llList2Integer(lstTime, 1);
    integer intDay   = llList2Integer(lstTime, 2);
    integer intHour  = llList2Integer(lstTime, 3);
 
    string  strYear;
    string  strMonth;
    string  strDay;
    string  strHour;
 
    if (intOffset == 0) { return strTimestamp; }
 
    if (intOffset < -24 || intOffset > 24) {
        intOffset = ((integer)llGetWallclock() - (integer)llGetGMTclock()) / 3600;
    }
 
    intHour+= intOffset;
 
    // Add a day to February in leap years
    if (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0)) {
        lstDays = llListReplaceList(lstDays, [29], 2, 2);
    }
 
    if (intOffset < 0) {
        if (intHour < 0) {
            intHour+= 24;
            --intDay;
        }
 
        if (intDay < 1) {
            intDay = llList2Integer(lstDays, --intMonth);
        }
 
        if (intMonth < 1) {
            intMonth = 12;
            --intYear;
        }
    }
 
    if (intOffset > 0) {
        if (intHour > 23) {
            intHour-= 24;
            ++intDay;
        }
 
        if (intDay > llList2Integer(lstDays, intMonth)) {
            intDay = 1;
            ++intMonth;
        }
 
        if (intMonth > 12) {
            intMonth = 1;
            ++intYear;
        }
    }
 
    strYear  = (string)intYear;
    strMonth = (string)intMonth;
    strDay   = (string)intDay;
    strHour  = (string)intHour;
 
    if (llStringLength(strMonth) < 2) { strMonth = "0" + strMonth; }
    if (llStringLength(strDay)   < 2) { strDay   = "0" + strDay;   }
    if (llStringLength(strHour)  < 2) { strHour  = "0" + strHour;  }
 
    return

 
        strDay                    + "-" +
        strMonth                  + "-" +
        strYear                   + "  " +
        strHour                   + ":" +
        llList2String(lstTime, 4) + ":" +
        llList2String(lstTime, 5) ;//+ "." +
        //llList2String(lstTime, 6) + "Z";
        // Obviously this isn't really Z time anymore, but I left it there in case there
        // are scripts expecting it.
        
}

 

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 218 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...