I'd seen references to SPUtility before, and probably even used the object when basing code of blog posts I'd found on the net, but inspiration struct me the other day, and I decided to look it up in the SDK.
 
It is a static object that contains a number of useful functions - it also contains a number of obsolete functions, and some downright weird ones (like SPUtility.HideTaiwan and SPUtility.IsEastAsia strike me as ones that won't be widely used).
 
To access the object, you need to add the following using statement:
 
using Microsoft.SharePoint.Utilities;
 
 
I had a quick go through the SDK, an the following are what strikes me as some of the more useful functions this object provides (note, I havent used all of these yet, just went through the SDK then googled the functions I thought sounded interesting):
  • SPUtility.FormatDate

    Allows you to format a given date to any of the SPDateFormat types


    DateTime curDate = DateTime.Now();
    DateTime regionDate = web.RegionalSettings.TimeZone.UTCToLocalTime(web.ParentWeb.RegionalSettings.TimeZone.LocalTimeToUTC(curDate));
    return Convert.ToDateTime(SPUtility.FormatDate(web, regionDate, SPDateFormat.ISO8601));



  • Get the 12-Hive filesystem path

    Returns the filesystem path for the 12-Hive, or any of the folders beneath it.  This is typically (though not always) going to be C:\Program Files\Common Files\Microsoft Shared\web server extensions\12

    //Get path to features directory
    //Would typically return "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES"
    string featurePath = SPUtility.GetGenericSetupPath("template\\features");


  • Get Full (absolute) URL

    Converts a relative Url into an absolute Url


    //Get url to list item
    SPListItem item = spList.Items[1];
    string itemUrl = SPUtility.GetFullUrl(spSite, item.Url);


  • Redirect to page

    Send a HTTP redirect to the client's browser


    //Redirect to specified page, adding querystring
    string url = "http://portal/TestResults/Pages/results.aspx";

    string queryString = "successflag=passed";

    SPUtility.Redirect(url, SPRedirectFlags.Default, Context, queryString);


  • Send email

    Lets you send an email from the context of the given SPWeb

    //Send email from current SPWeb
    SPWeb web = SPContext.Current.Site.OpenWeb();
    string subject = "Email from the " + web.Title + " web";
    string body = "The body of the email";

    SPUtility.SendEmail(web, false, false, "someone@somewhere.com", subject, body);


  • Transfer to SharePoint success/error page

    Allows you to transfer the browser to the ootb error and success pages

    //Transfer to Error Page
    SPUtility.TransferToErrorPage(ex.Message);

    //Transfer to success page, and specify url to move onto after "Ok" clicked
    SPUtility.TransferToSuccessPage("Operation was completed", @"/Docs/default.aspx", "", "");



There are a bunch of others on there, and although they are not really very well documented, they are certainly worth a look through.