ASP Code
  Home arrow ASP Code arrow Format Date/Time Function - fmtDateTime() ...
ASP Free Forums 
.NET  
ASP  
ASP Code  
ASP.NET  
ASP.NET Code  
BrainDump  
C#  
Code Examples  
Database  
Database Code  
IIS  
Microsoft Access  
MS SQL Server  
Silverlight  
Visual Basic.NET  
Windows Scripting  
Windows Security  
XML  
Mobile Linux 
App Generation ROI 
IBM® developerWorks 
ASP Web Hosting  
ASP.NET Web Hosting 
Windows Web Hosting
 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
ASP CODE

Format Date/Time Function - fmtDateTime() by Kevin Turner
By: aspfree
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 5 stars5 stars5 stars5 stars5 stars / 19
    2001-07-21

    Table of Contents:

    Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    Format Date/Time Function - fmtDateTime()
     
    This function was created to compensate for the poor date and time formatting capabilities available to the ASP (VBScript) developer. FormatDateTime() just doesn't cut it! This function is analgous to the Format() function in the Visual Basic world.
     
    The function takes two parameters:
    1. A valid date object
    2. A formatting string such as 'mm-dd-yyyy'
     
    Usage:
     
    The first parameter can be a Variant Date object or an expression that evaluated to Variant Date object. The second parameter is a Variant String composed of the following date and time tokens:
     
    Date Parts
    • yy - year value, 2-digits
    • yyyy - year value, 4-digits
    • m - month value (1 to 12), not zero-padded
    • mm - month value (1 to 12), zero-padded
    • d - day value (1 to 31), not zero-padded
    • dd - day value (1 to 31), zero-padded
    Time Parts
    • h - hours value, not zero-padded
    • hh - hours value, zero-padded
    • m or mm - minutes value, always zero-padded
    • s or ss - seconds value, always zero-padded
    Acceptable time delimiters:
    • colon (:)
    Acceptable date delimiters:
    • forward slash(/)
    • hyphen (-)
    If you to use date and time formatting, then separate the date from the time with a space.
     
    Note: fmrDateTime requires a small utility function called ZeroPads to -- you guessed it -- zero-pad values. It is included below.
     
    Example:
     
    <%
    Dim dToday, dXmas2001
    Response.Write "Today's date: " & fmtDateTime(Now(), "yyyy-mm-dd")
    ' date displayed: 2001-07-19
    Response.Write "Yesterday's date: " & fmtDateTime(DateAdd("d", -1,
    Now()), "yyyy-mm-dd") ' date displayed: 2001-07-18 dXmas2001 = #12/25/2001 12:45:50# Response.Write "Christmas 2001: : " & fmtDateTime(dXmas2001,
    "m/dd/yyyy hh:mm") ' date/time displayed: 12/25/2001 12:45 %>
     
    Here is the code:
    <%
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Routine:   fmtDateTime()
    '
    ' Purpose:   Returns a Variant (String) containing an expression 
    '            formatted according to instructions contained in a 
    '            format expression
    '
    ' Inputs :   Argument    : d
    '            DataType    : Variant Date
    '            Description : A *valid* variant date variable or an
    '                        : expression that result in a variant date
    '                        : variable
    '
    '            Argument    : pat
    '            DataType    : Variant String
    '            Description : An acceptable date and/or time pattern
    '
    ' Outputs:   Argument    : None
    '
    ' Returns:   Formatted Variant string representation of the date
    '            passed in or an error message where applicable.
    '
    ' Sample Usage :
    '  strToday = fmtDateTime(Now(), "yyyy-mm-dd hh:mm:ss")
    '  strYesterday = fmtDateTime(DateAdd("d", -1, Now()), "h:m:s")
    '
    ' Author :   Kevin J. Turner  July 11, 2001
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Function fmtDateTime(byval d, byval pat)
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Acceptable date formatting parts:
    '  yy       - year value, 2-digits
    '  yyyy     - year value, 4-digits
    '  m        - month value (1 to 12), not zero-padded
    '  mm       - month value (1 to 12), zero-padded
    '  d        - day value (1 to 31), not zero-padded
    '  dd       - day value (1 to 31), zero-padded
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Acceptable time formatting parts:
    '  h        - hours value, not zero-padded
    '  hh       - hours value, zero-padded
    '  m or mm  - minutes value, always zero-padded
    '  s or ss  - seconds value, always zero-padded
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Acceptable time delimiters:
    '   colon (:)
    ' Acceptable date delimiters:    
    '   space ( ) or hyphen (-)
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Assumptions made: 
    ' DATE-ONLY patterns will NOT contain colons or spaces
    ' TIME-ONLY patterns will NOT contain hyphens or forward slashes
    '   and WILL contain colons
    ' DATE-TIME patterns WILL contain acceptable date part delimiters,
    '   acceptable time part delimiters, and a space to delimit the 
    '   date from the time
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
    ' First, if a space character is present, then the patteren is 
    ' split into a 2-element array: the first element being (typically)
    ' the date portion, and the second element being (typically) the 
    ' time portion. If no space character present, then we're working 
    ' with a date or time part. Splitting this type of pattern with 
    ' double-quotes ("") will result in a 1-element array consisting 
    ' of a date portion or a time portion.
    Dim Tokens, token, delim, i, date_part, time_part, DateTokens, TimeTokens
    ' do not treat Null values as erroneous parameters, handle them gracefully
    If IsNull(d) Then
    fmtDateTime = ""
    Exit Function
    End If
    If TypeName(d) <> "Date" Or Not IsDate(d) Then
    fmtDateTime = "Invalid date parameter."
    Exit Function
    End If
    ' if there's a space in the string, then we're dealing with 
    ' date *and* time formatting, otherwise it date OR time formatting
    ' we doing
    If InStr(pat, " ") > 0 Then
    Tokens = Split(pat, " ") ' should be 2 tokens --> (0)date (1)time
    Else
    Tokens = Split(pat, "") ' date OR time formatting
    End If
    bIsDate = False : bIsTime = False
    For Each token In Tokens
    If InStr(token, "-") > 0 Or InStr(token, "/") > 0 Then
    ' get the delimter used...
    If InStr(token, "-") Then
    delim = "-"
    ElseIf InStr(token, "/") Then
    delim = "/"
    End If
    ' tokenize the date parts
    DateTokens = Split(token, delim)
    For i = 0 To UBound(DateTokens)
    ' replace the time tokens with properly formatted values
    Select Case CStr(DateTokens(i))
    Case "yy"
    DateTokens(i) = Right(CStr(DatePart("yyyy", d)), 2)
    Case "yyyy"
    DateTokens(i) = CStr(DatePart("yyyy", d))
    Case "m"
    DateTokens(i) = CStr(DatePart("m", d))
    Case "mm"
    DateTokens(i) = ZeroPad(CStr(DatePart("m", d)),2)
    Case "d"
    DateTokens(i) = CStr(DatePart("d", d))
    Case "dd"
    DateTokens(i) = ZeroPad(CStr(DatePart("d", d)),2)
    Case Else
    fmtDateTime = "Invalid date format : " & token
    Exit Function
    End Select
    Next
    date_part = Join(DateTokens, delim)
    End If
    If InStr(token, ":") > 0 Then
    ' tokenize the time parts
    TimeTokens = Split(token, ":")
    For i = 0 To UBound(TimeTokens)
    ' replace the time tokens with properly formatted values
    Select Case CStr(TimeTokens(i))
    Case "h"
    TimeTokens(i) = Right(CStr(DatePart("h", d)), 2)
    Case "hh"
    TimeTokens(i) = ZeroPad(CStr(DatePart("h", d)),2)
    Case "m", "mm"  ' always zero-pad minutes
    TimeTokens(i) = ZeroPad(CStr(DatePart("n", d)),2)
    Case "s", "ss"  ' always zero-pad seconds
    TimeTokens(i) = ZeroPad(CStr(DatePart("s", d)),2)
    Case Else
    fmtDateTime = "Invalid time format : " & token
    Exit Function
    End Select
    Next
    time_part = Join(TimeTokens, ":")
    End If
    Next
    fmtDateTime =  Trim(date_part & " " & time_part)
    End Function
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Routine:   ZeroPad()
    '
    ' Purpose:   Pads a Variant String with zeros to a specified number
    '            of digits, 
    '               e.g.  "12" padded to 4 digits --> "0012"
    '
    ' Inputs :   Argument    : str
    '            DataType    : Variant String
    '            Description : The string value to be padded
    '
    '            Argument    : iSize
    '            DataType    : Variant Integer
    '            Description : The total desired size of the returned
    '                          string.
    '
    ' Outputs:   Argument    : None
    '
    ' Returns:   A zero-padded Variant string representation of the string
    '            passed in.
    '
    ' Sample Usage :
    '  strVal = ZeroPad("14", 4)  ' <--  returns "0014"
    '
    ' Author :   Kevin J. Turner  July 11, 2001
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Function ZeroPad(byval str, byval iSize)
    ZeroPad = String((iSize - Len(str)), "0") & Trim(str)
    End Function
    %>
    

    DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.

    More ASP Code Articles
    More By aspfree

     

    IBM® developerWorks developerWorks - FREE Tools!


    NEW! Driving Business Success with Rational Process Library

    Join this webcast, to learn how the Rational Process Library can help with compliance issues, drive process improvement, and assist in service-oriented architecture (SOA) or Agile development. We will take a peek into the Rational Process Library with content around software and systems engineering (including RUP), operations and systems management, program and portfolio management, and asset and SOA governance.
    FREE! Go There Now!


    NEW! Best Practices in Integrated Requirements Management

    Poor Requirements Management capabilities in an Enterprise have been linked to excessive project failures, escalating IT costs, and failure to deliver competitive advantage into the marketplace. Join Brianna M Smith from IBM Rational and learn about how successful organizations align IT and Business stakeholders through collaborative processes and tools for effective requirements management, and how an integrated approach across the IT lifecycle can provide unparalleled visibility and traceability to ensure that project teams are delivering on the business vision by "doing the right things" and "doing things right."
    FREE! Go There Now!


    NEW! Build Web services with transport-level security using Rational Application Developer V7, Part 1: Build Web services and Web services clients

    Build secure Web services with transport-level security using IBM Rational Application Developer V7 and IBM WebSphere Application Server V6.1. Follow this three-part series for step-by-step instructions about how to develop Web services and clients, configure HTTP basic authentication, and configure HTTP over SSL (HTTPS). This first part of the series walks you through building a Web service for a simple calculator application. You generate and test two different types of Web services clients: a Java Platform, Enterprise Edition (Java EE) client and a stand-alone Java client. You also handle user-defined exceptions in Web services.
    FREE! Go There Now!


    NEW! Did you say mainframe? e-kit

    Learn how you can extend modern application lifecycle management to IBM System z through the IBM Rational Software Delivery Platform (SDP). The Did you say mainframe? e-kit includes podcasts, webcasts, tutorials, white and red papers, demos, and articles designed to help ease the challenges of modernizing your enterprise. This complimentary kit for mainframe developers is a practical, how-to guide for making the most of an existing development environment, including the skills and infrastructure already in place at an established enterprise.
    FREE! Go There Now!


    NEW! Download a free trial of WebSphere Business Modeler Advanced V6.1.1

    Visit IBM developerWorks to download a free trial version of WebSphere Business Modeler Advanced V6.1.1, IBM’s premier business process modeling and analysis tool for business users that offers process modeling, simulation, and analysis capabilities. IBM WebSphere Business Modeler helps you visualize, understand, and document business processes for continuous improvement.
    FREE! Go There Now!


    NEW! IBM Enterprise Modernization Sandbox for System z

    IBM Enterprise Modernization solutions help organizations evolve core IT systems towards modern architectures and technologies—reducing the burden of maintenance and freeing up resources to develop new business requirements and capabilities. With the IBM Enterprise Modernization Sandbox for System z you can evaluate IBM Enterprise Modernization solutions focused on five key areas: Assets, Architectures, Skills, Processes and Infrastructures, and Investment. Each solution is based upon real customer experiences and offers a proven path to get you started with your modernization projects.
    FREE! Go There Now!


    NEW! Maintaining QoS and Process Integrity in an SOA Environment

    This webcast outlines the best practices that must be instituted to gain the maximum benefit from SOA while maintaining high quality of service. Whether you are deploying new applications or managing and monitoring your existing infrastructure, learn how you can ensure high quality of services with SOA based solutions from IBM. All registrants who attend this live Web Seminar will receive complimentary access to a white paper titled “Maintaining QoS in an SOA Environment”.
    FREE! Go There Now!


    NEW! Rational Asset Manager eKit

    Learn how to do more with your reusable assets with the free Rational Asset Manager eKit. The eKit includes demos on how Rational Asset Manager tracks and audits your assets in order to utilize them for reuse. Plus you’ll find white papers and a Webcast that discuss the challenges of a Service Oriented Architecture and how Rational Asset Manager can provide quick and effective solutions.
    FREE! Go There Now!


    NEW! Section 508 of the U.S. Rehabilitation Act: Web accessibility compliance

    Because access to government information continues to be an area of concern for many U.S. citizens with disabilities, the U.S. government enacted Section 508 of the Rehabilitation Act in 2001 to ensure that government agencies create accessible Web content, enabling all citizens to access the information they need. A fully accessible Web site makes Web content accessible to all individuals, including those with disabilities, who may be accessing Web content via a variety of user agents. Common user agents include standard Web browsers, text-only browsers, assistive devices and mobile devices such as cell phones or personal digital assistants (PDAs).
    FREE! Go There Now!


    NEW! Whitepaper: Delivering SOA solutions: service lifecycle management

    The unprecedented scope of a service-oriented architecture (SOA) initiative brings to the forefront a number of management and governance issues that were sidestepped in the past. The key to a successful SOA implementation is managing and governing activities throughout the entire SOA delivery lifecycle by ensuring that services conform to the needs of all of the business’s stakeholders. Learn how service lifecycle management allows the business to ensure that the process by which services are defined, created, tested, deployed, optimized and retired is manageable, repeatable and auditable.
    FREE! Go There Now!



    All FREE IBM® developerWorks Tools!

    ASP CODE ARTICLES

    - ASP Forms
    - ASP: The Beginning
    - Getting Remote Files With ASP Continued
    - Inbox and Outbox Manipulation in ASP
    - Relational DropDownList Using VB.NET
    - Ad Tracking URL Hits
    - Use ViewState to display one record per page...
    - Send Email using ASP.NET formatted in HTML
    - ASP File Explorer
    - ASP/XML Interview questions by Srivatsan Sri...
    - Conditional DataGrid Item and using checkbox...
    - Fill .NET Listbox with SQL DataReader
    - Filling Dropdown box using Code-Behinds in C#
    - FLAMES code sample written in .NET What is F...
    - Format Date/Time in a console app class





    © 2003-2010 by Developer Shed. All rights reserved. DS Cluster 11 Hosted by Hostway
    For more Enterprise Application Development news, visit eWeek