Lotus notes 如何指定月份';Lotusscript格式的s语言(CultureInfo)(现在为“dd/mmm/yyyy”)

Lotus notes 如何指定月份';Lotusscript格式的s语言(CultureInfo)(现在为“dd/mmm/yyyy”),lotus-notes,lotusscript,date-formatting,regional-settings,Lotus Notes,Lotusscript,Date Formatting,Regional Settings,这个问题是的LOTUSCRIPT版本 需要说明: 我需要dd/mmm/yyyy格式的字符串日期(例如:“2014年2月28日”)。我不希望这3个字母使用英语(intl),并且不本地客户端中使用的默认区域设置 限制条件: 使用的编程语言:LotusNotes中客户端的Lotusscript 我无法更改客户端计算机的区域设置。lotusnotes特有的注册表是痛苦的(比如:) 我想$format不能解决我的问题。我能用什么?我最后的选择是选择案例月(现在)案例1:resu=resu+“一月” 还有

这个问题是的LOTUSCRIPT版本

需要说明: 我需要dd/mmm/yyyy格式的字符串日期(例如:“2014年2月28日”)。我不希望这3个字母使用英语(intl),并且本地客户端中使用的默认区域设置

限制条件:

  • 使用的编程语言:LotusNotes中客户端的Lotusscript
  • 我无法更改客户端计算机的区域设置。lotusnotes特有的注册表是痛苦的(比如:)
  • 我想$format不能解决我的问题。我能用什么?我最后的选择是选择案例月(现在)案例1:resu=resu+“一月”

    还有更好的主意吗?提前感谢您提出这样一个“似曾相识”的话题


    [编辑我以前写的“我不想用英语”应该是“我不想用英语”。LS格式总是返回英语]

    我相信
    格式(现在是“dd-mmm-yyyy”)
    会生成英语的月份,但我不是100%确定

    如果没有,你可以使用


    Day(Now)和“&Mid”(“janfebmarapmayjuljunaugsepoctnovdec”,3*月(Now)-2,3)和“&Year(Now)
    ”我相信
    格式(Now,“dd-mmm-yyyy”)
    会产生英语月份,但我不是100%确定

    如果没有,你可以使用


    Day(Now)和“&Mid”(JanFebMarAprMayJulJunAugSepOctNovDec),3*月(Now)-2,3)和“&Year(Now)
    我认为没有比在自己的函数中手动构造日期字符串更好的方法了:

    Function FormatDate(sourceDate as Variant) As String
    
        Dim months[1 to 12] as String
        months[1] = "Jan"
        months[2] = "Feb"
        months[3] = "Mar"
        months[4] = "Apr"
        months[5] = "May"
        months[6] = "Jun"
        months[7] = "Jul"
        months[8] = "Aug"
        months[9] = "Sep"
        months[10] = "Oct"
        months[11] = "Nov"
        months[12] = "Dec"
    
        Dim monthPart as String
        Dim dayPart as String
        Dim yearPart as String
    
        dayPart = Format(sourceDate, "dd")
        yearPart = Format(sourceDate, "yyyy")
        monthPart = months[Month(sourceDate)]
    
        FormatDate = dayPart & " " & monthPart & " " & yearPart
    
    End Function
    

    我认为没有比在自己的函数中手动构造日期字符串更好的方法了:

    Function FormatDate(sourceDate as Variant) As String
    
        Dim months[1 to 12] as String
        months[1] = "Jan"
        months[2] = "Feb"
        months[3] = "Mar"
        months[4] = "Apr"
        months[5] = "May"
        months[6] = "Jun"
        months[7] = "Jul"
        months[8] = "Aug"
        months[9] = "Sep"
        months[10] = "Oct"
        months[11] = "Nov"
        months[12] = "Dec"
    
        Dim monthPart as String
        Dim dayPart as String
        Dim yearPart as String
    
        dayPart = Format(sourceDate, "dd")
        yearPart = Format(sourceDate, "yyyy")
        monthPart = months[Month(sourceDate)]
    
        FormatDate = dayPart & " " & monthPart & " " & yearPart
    
    End Function
    

    如果您使用的是Windows,则可以使用WinApi函数。对于此函数,您需要创建结构。您还需要使用和主题来设置日期和时间的语言和格式。
    下面是一个例子:

    ”声明
    输入系统时间
    作为整数的wYear
    作为整数的wmmonth
    wDayOfWeek作为整数
    作为整数的wDay
    wHour作为整数
    wMinute为整数
    秒作为整数
    wmill秒为整数
    端型
    声明函数GetDateFormat Lib“kernel32”别名“GetDateFormatA”(_
    只要_
    拜瓦尔:只要_
    lpDate作为系统时间_
    Byval lpFormat作为字符串_
    Byval lpDateStr作为字符串_
    Byval cchDate As Long)一样长
    函数FormatDate(值作为变量,区域设置作为长,formatString作为字符串)作为字符串
    将缓冲区设置为字符串,将systemTime设置为systemTime
    systemTime.wYear=年(值)
    systemTime.wMonth=月份(值)
    systemTime.wDay=天(值)
    缓冲区=字符串(255,0)
    GetDateFormat区域设置&,0,systemTime,formatString$,缓冲区,Len(缓冲区)
    FormatDate$=Left$(缓冲区,指令(1,缓冲区,Chr$(0))-1)
    端函数
    “用法
    MessageBox FormatDate(现在,&h40c,“dd-MMM-yyyy”)
    “&h40c-是fr区域设置(0x040c)
    

    另一种方法是使用LS2J。为此,可以使用类及其方法。您还需要使用class和class来设置语言和日期。
    下面是一个例子:

    ”声明
    Uselsx“*javacon”包括在LotusScript中使用Java对象的代码
    函数FormatDate(值作为变量,语言作为字符串,国家作为字符串,formatString作为字符串)作为字符串
    Dim javaSession作为新的javaSession
    Dim localeClass作为JavaClass
    将区域设置设置为JavaObject
    将calendarClass设置为JavaClass
    将日历设置为JavaObject
    Dim dateFormatClass作为JavaClass
    Dim dateFormat作为JavaObject
    设置localeClass=javaSession.GetClass(“java/util/Locale”)
    设置locale=localeClass.CreateObject(((Ljava/lang/String;Ljava/lang/String;)V),语言$,国家$)
    Set calendarClass=javaSession.GetClass(“java/util/Calendar”)
    Set calendar=calendarClass.GetMethod(“getInstance”,”()Ljava/util/calendar;”).Invoke()
    '您需要从月值中减去1
    通话日历。设置(年(值)、月(值)-1、日(值))
    Set-dateFormatClass=javaSession.GetClass(“java/text/simpleDataFormat”)
    Set dateFormat=dateFormatClass.CreateObject(((Ljava/lang/String;Ljava/util/Locale;)V),formatString$,Locale)
    FormatDate$=dateFormat.format(calendar.getTime())
    端函数
    “用法
    MessageBox FormatDate(现在是“fr”、“fr”、“dd MMM yyyy”)
    
    在本例中,我使用了获取
    Locale
    对象。您可以从中获取语言代码和国家/地区代码。

    对于
    SimpleDataFormat
    对象,我使用了构造函数。

    如果您使用的是Windows,则可以使用WinApi函数。对于此函数,您需要创建结构。您还需要使用和主题来设置日期和时间的语言和格式。
    下面是一个例子:

    ”声明
    输入系统时间
    作为整数的wYear
    作为整数的wmmonth
    wDayOfWeek作为整数
    作为整数的wDay
    wHour作为整数
    wMinute为整数
    秒作为整数
    wmill秒为整数
    端型
    声明函数GetDateFormat Lib“kernel32”别名“GetDateFormatA”(_
    只要_
    拜瓦尔:只要_
    lpDate作为系统时间_
    Byval lpFormat作为字符串_
    Byval lpDateStr作为字符串_
    Byval cchDate As Long)一样长
    函数FormatDate(值作为变量,区域设置作为长,formatString作为字符串)作为字符串
    将缓冲区设置为字符串,将systemTime设置为systemTime
    systemTime.wYear=年(值)
    systemTime.wMonth=月份(值)
    systemTime.wDay=天(值)
    缓冲区=字符串(255,0)
    GetDateFormat区域设置&,0,systemTime,formatString$,缓冲区,Len(缓冲区)
    FormatDate$=Left$(缓冲区,指令(1,缓冲区,Chr$(0))-1)
    端函数
    “用法
    MessageBox FormatDate(现在,&h40c,“dd-MMM-yyyy”)
    “&h40c-是fr区域设置(0x040c)
    

    另一种方法是使用LS2J。为此,可以使用类及其方法。您还需要使用class和class来设置语言和日期。
    下面是一个例子:

    ”声明
    Uselsx“*javacon”包括在LotusScript中使用Java对象的代码
    作用